阿里云国际出了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的輸出,幫助我們抽取流量資訊)
- 利用 awk 抽取出總流量資訊。
2. 判斷是否大於 999 GiB,如果大於則關閉機器。 -
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