安装vnStat
这是个辅助获取网络流量信息的工具。
我用的是Debian12 & Debian10,直接apt install vnstat给装好了。
注意修改一下/etc/vnstat.conf
这个配置文件,
加入systemctl后台启动运行。
脚本
简单命名为auto-shutdown.sh
,内容如下:
#!/bin/bash
# 定义变量
TRAFFIC_TOTAL_GB=100
BARK_URL="https://api.day.app/xxxxxxxxxx"
# 输出网络接口
NET_INTERFACE=$(ip route | grep default | awk '{print $5}')
echo "网络接口: $NET_INTERFACE"
# 输出总流量限制
echo "总流量限制: $TRAFFIC_TOTAL_GB GB"
# 获取当前年和月
CURRENT_MONTH=$(date +%Y-%m)
echo "当前月份: $CURRENT_MONTH"
# 获取vnstat的输出
OUTPUT=$(vnstat --oneline b | awk -F';' '{print $11}')
echo "vnstat 输出: $OUTPUT"
# 将流量从MiB转换为GB(大致值)
TRAFFIC_USED_GB=$(expr $OUTPUT / 1073741824)
echo "已使用流量(GB)(大致值): $TRAFFIC_USED_GB"
# 判断流量是否超过限制
if awk -v t1="$TRAFFIC_USED_GB" -v t2="$TRAFFIC_TOTAL_GB" 'BEGIN {exit (t1 > t2) ? 0 : 1}'; then
echo "流量超过 $TRAFFIC_TOTAL_GB GB,正在关机。"
# 发送bark通知
curl -s -d "body=总流量: $TRAFFIC_TOTAL_GB GB, 已使用: $TRAFFIC_USED_GB GB, 正在关机。" $BARK_URL
shutdown -h now
else
echo "流量在限制范围内。"
fi
执行脚本需要root权限,注意赋予脚本可执行权限。
chmod +x aws-auto-shutdown.sh
设置定时任务设置定时任务
我打算每隔五分钟执行脚本检查一次,所以设置定时任务
apt-get install cron -y
crontab -e
进入后,输入
*/5 * * * * /path/to/auto-shutdown.sh > /dev/null 2>&1
根据自己需要修改路径,保存关闭。
这样任务就安装好了。?
评论