清风徐来
Michael's Blog
另一个VPS流量超过后自动关机脚本

说明

本脚本单位以GB计算非Gib;Gib是1024进位,GB是1000进位。

如果用了Gib会误差93.132%,也就是说你的VPS有1024GB/月流量,写成Gib就是953.6Gib,误差还是挺大的,所以单位别搞混了。

值得注意的是阿里云国际是只计算出站流量的,入站流量免费(以VPS为中心思考)。

安装vnstat(centos)

yum -y install epel-release
yum install -y vnstat
service vnstat start
chkconfig vnstat on

安装vnstat(debian)

apt-get install vnstat

修改配置文件

vi /etc/vnstat.conf

找到UnitMode 0 修改为:UnitMode 1

创建脚本文件check.sh

vi check.sh

#!/bin/bash
vnstat -u -i eth0                                              #更新网卡记录
ax=`vnstat --oneline | awk -F ";" '{print $10}'`               #获取每月用量 $11:进站+出站;$10是:出站;$9是:进站
if [[ "$ax" == *GB* ]];                                        #如果每月用量单位是GB则进入
then
if [ $(echo "$(echo "$ax" | sed 's/ GB//g') / 99"|bc) -eq 1 ]  #每月实际流量数除以99,大于或等于1,则执行关机命令
then
    /usr/sbin/shutdown -h now
fi
fi

给check.sh授于权限

chmod +x check.sh

设置定时执行

每5分钟执行一次(可能会降低准确度,防止VPS开机就自动关机)

crontab -e

*/5 * * * * /bin/bash /root/check.sh

常用命令

vnstat --iflist #列出当前可用网卡
vnstat      #默认查看内容
vnstat -h   #按小时统计显示
vnstat -d   #按天统计显示
vnstat -m   #按月统计显示
vnstat -w   #按星期统计显示
vnstat -t   #显示流量消耗最大的前10天

清风在阿里国际香港centos下测试通过


最后修改于 2020-06-21