前言:
我用过很多VPS后发现一些IDC厂家流量超标是不会关机或者暂停VPS的,例如阿里云国际(套路云),月月超标扣费还是很肉疼的,所以嘛,不控制一下,实在是hold不住了。
对了本脚本单位以GB计算非Gib;具体区别嘛,Gib是1024进位,GB是1000进位,如果用了Gib会误差93.132%,也就是说你的VPS有1024GB/月流量,写成Gib就是953.6Gib,误差还是挺大的,所以单位别搞混了。
值得注意的是阿里云国际是只计算出站流量的,入站流量免费(以VPS为中心思考)。
正文:
1-1.安装vnstat:
yum -y install epel-release yum install -y vnstat service vnstat start chkconfig vnstat on
1-2.修改配置文件:
vi /etc/vnstat.conf
Tip:找到UnitMode 0 修改为:UnitMode 1
1-3.创建脚本文件check.sh:
vi check.sh
1-4.写入脚本:
#!/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') / 999"|bc) -eq 1 ] #每月实际消耗流量数除以999,如果是大于或等于1,则执行关机命令/如果小于1则不执行(单位是GB)
then
/usr/sbin/shutdown -h now
fi
fi
1-5.给check.sh授于权限:
chmod +x check.sh
1-6.设置定时任务:
crontab -e
1-7.写入命令,每5分钟执行一次(可能会降低准确度,但是相比没等VPS开机就自动关机来说,还算仁慈,哈哈!):
*/5 * * * * /bin/bash /root/check.sh
1-8.常用命令:
vnstat #默认查看内容 vnstat -h #按小时统计显示 vnstat -d #按天统计显示 vnstat -m #按月统计显示 vnstat -w #按星期统计显示 vnstat -t #显示流量消耗最大的前10天
结尾:
加一个脚本控制流量叫保险…套路云真贵!
后期有问题再补充吧!