检查网卡流量,超出后自动关机脚本
没错,就是在说阿里CDT的200G啦。
阿里的SDK似乎没相应的API,所以就简单粗暴的弄弄了,有洁癖的就别看了。
步骤一,增加 crontab,每个月重启机器清除网卡统计数据。 粗爆吧。0 0 1 * * /usr/sbin/reboot
步骤二,检查网卡流量
先在crontab里加入一个每分钟一次的任务来检查*/1 * * * * /usr/local/bin/check.sh #check.sh是你检查的脚本,文件名当然根据实际的来
脚本是假定使用共享流量包,就是进出取大者计算。
脚本如下:
#!/bin/bash
# 获取 ifconfig eth0 的输出
output=$(ifconfig eth0)
# 提取 RX 和 TX 的字节数
rx_bytes=$(echo "$output" | grep -oP 'RX packets \d+ bytes \K\d+')
tx_bytes=$(echo "$output" | grep -oP 'TX packets \d+ bytes \K\d+')
# 将 190 GB 转换为字节。保险一点,没用200G。
limit=$((190 * 1024 * 1024 * 1024))
# 比较 RX 和 TX 的字节数并输出较大的那个值
if [ "$rx_bytes" -gt "$tx_bytes" ]; then
larger_value=$rx_bytes
else
larger_value=$tx_bytes
fi
echo "Larger value: $larger_value"
# 检查是否超过 190 GB
if [ "$larger_value" -gt "$limit" ]; then
echo "Warning: The value exceeds 190 GB!"
/usr/sbin/shutdown now
fi