教程说明

下面的代码保存为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,脚本会输出一条警告信息并自动关机。否则,脚本会输出一条正常信息并继续等待下一次检测。

声明:本站所有文章或资源,均来自互联网分享。本站不参与制作或存储,内容仅用于互联网爱好者学习和研究,如不慎侵犯了您的权利,请及时联系站长处理删除。敬请谅解!