我们在购买国外 VPS 的时候都有流量限制,如果超过月流量就只能停机了,这里博主给出个限定时间内超流量自动关机脚本,以防止刷流量导致主机商停机。
教程说明
下面的代码保存为network_monitor.sh
#!/bin/bash
# 指定要监视的网卡名称
INTERFACE="eth0"
# 获取指定网卡的出站流量(以字节为单位)
OUTGOING=$(cat /sys/class/net/$INTERFACE/statistics/tx_bytes)
# 将出站流量转换为 GB
OUTGOING_GB=$(echo "scale=2; $OUTGOING / 1024 / 1024 / 1024" | bc)
# 设置阈值(以 GB 为单位)
THRESHOLD=100
# 检查出站流量是否超过阈值
if (( $(echo "$OUTGOING_GB > $THRESHOLD" | bc -l) )); then
echo "出站流量超过 $THRESHOLD GB!执行关机命令..."
# 在这里执行关机命令,例如:
shutdown -h now
else
echo "出站流量未超过 $THRESHOLD GB."
fi
将其设置为可执行文件
chmod +x network_monitor.sh
使用cron 计划任务在每十分钟执行一次该脚本,运行crontab -e
命令编辑cron文件,或者直接修改/var/spool/cron/root
文件,添加以下行:
*/10 * * * * /root/network_monitor.sh
请确保将/root/network_monitor.sh 替换为实际脚本文件的路径。
结语
当cron触发时(每十分钟一次),脚本就会检测网卡的流量。如果流量超过 100G,脚本会输出一条警告信息并自动关机。否则,脚本会输出一条正常信息并继续等待下一次检测。
© 版权声明
THE END
暂无评论内容