一个流量超出导致的惨案,搓了个流量超出后停服不关机的脚本

7 月 4 日
 Lentin

安装依赖

apt install vnstat

crontab

* * * * * vnstat -i ens5 --alert 0 3 m total 1800 GB || /bin/bash /home/admin/stats.sh

1800GB 改为你想指定的流量上限 /home/admin/stats.sh

#!/bin/bash

# 核心服务名称
SERVICE_NAME="xray"
# 你的 Bark 密钥
BARK_KEY=""

# 1. 核心防御:检查 xray 服务是否仍在运行
# 如果已经关闭,则默默退出,不重复操作
if ! systemctl is-active --quiet "$SERVICE_NAME"; then
    exit 0
fi

# 2. 如果服务在运行,说明是第一次到达阈值,打印日志
echo "[$(date '+%Y-%m-%d %H:%M:%S')] vnStat 检测到月流量超标,触发熔断..." >> /home/admin/stats.log

# 3. 发送 Bark 推送
curl -X POST "https://api.day.app/$BARK_KEY" \
     -d "level=critical" \
     -d "volume=5" \
     -d "title=🚨 Lightsail 流量熔断警告" \
     -d "body=本月流量已超过 1800 GB 限制,已自动关闭服务!" \
     > /dev/null 2>&1

# 4. 停止代理服务
systemctl stop "$SERVICE_NAME"

当然 也可以自动关机,发送通知后直接 shutdown now 就可以了

2499 次点击
所在节点    Amazon Web Services
3 条回复
datou
7 月 5 日
支持 lightsail 吗?
Lentin
7 月 5 日
@datou 通用的,我的就是 lightsail ,你注意一下网卡名也修改一下
kisstrnt
7 月 6 日
支持

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1224965

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX