1. 首页
  2. 技术

利用 crontab+ vnstat 监控阿里云ECS流量,防止超过流量包扣费

阿里云国际出了ECS流量包,但是流量只有1T,如果遇到什么DDDOS,CC攻击会导致流量直接耗完,但是阿里云ECS流量扣完后不是停机而是会继续,这点还是比较坑的,有些时候我们会上去控制台看,但是如果有自动完成也是更好的,利用Crontab+vnstat监控vps流量,防止超过自动关机

 

首先安装vnstat

centos

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

ubuntu、debian

sudo apt-get install vnstat

 

2. 列出目前系統可的网卡

vnstat --iflist

3. 以 eth0为例,设定要监控的网卡流量,防止有多个网卡监控出错

vnstat -u -i eth0

4. 启动vnstat

sudo service vnstat start

5. 可以透過以下指令確認使否成功啟動

ps aux | grep "vnstat"

6. 測試監控流量狀況

vnstat

7. 完成,接下來寫個脚本(check.sh) 來執行檢查流量。(其中用到 awk 這個簡單語言,處理 command line的輸出,幫助我們抽取流量資訊)

  1. 利用 awk 抽取出總流量資訊。
    2. 判斷是否大於 999 GiB,如果大於則關閉機器。
  2. vi cheack.sh
#!/bin/bash
ax=`vnstat --oneline | awk -F ";" '{print $11}'`
if [[ "$ax" == *GiB* ]];
then
 if [ $(echo "$(echo "$ax" | sed 's/ GiB//g') > 999"|bc) -eq 1 ]
 then
 shutdown -h now
 fi
fi

 

8. 完成 脚本,我們將他加入例行性排程並且以root身分執行(一般使用者會無法存取部分資料夾),定時檢查流量

9.加入到crontab中

crontab -e

 

10  *    *       *        *        root   bash check.sh

 

 

原创文章,作者:admin,如若转载,请注明出处:https://www.huiyingwu.com/998/

发表评论

电子邮件地址不会被公开。 必填项已用*标注