AWS亚马逊云免费主机Lightsail流量超出自动关机脚本

AWS亚马逊云免费主机Lightsail流量超出自动关机脚本
SunwayAWS亚马逊云|免费主机
Lightsail流量用尽后自动关机脚本
Lightsail 根据价位不同,包含了各种各样的流量套餐,比如最便宜的 $3.5 套餐只有 1T 双向流量。和国内收费习惯不同,AWS 在你流量用完后依然提供服务,超出的流量费会在月底给你账单!也就是说万一被恶意刷流量,你有可能倾家荡产(网上也有网友说可以找 AWS 申请免除账单),所以为了自己的钱包着想,我还是选择超出套餐流量自动关机。
aws免费云主机以debian为例
注: AWS 是双向计流量
1. 安装依赖
输入以下命令安装 vnstat
和 bc
:
1 | sudo apt update |
2. 查看网卡名称
运行以下命令查看网卡名称:
1 | ip link |
输出类似如下:
1 | 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 |
- 记下 ens5(或其他类似名称),这是你的网卡名称。
3. 修改 vnstat 配置
运行以下命令编辑 vnstat 配置文件:
1 | sudo nano /etc/vnstat.conf |
- 找到以下配置项并按需求修改:
1 |
|
4. 重启 vnstat
输入以下命令使配置生效:
1 | sudo systemctl restart vnstat |
5. 创建自动关机脚本
创建名为 check.sh 的脚本文件:
1 | nano /home/admin/check.sh |
- 将以下内容复制粘贴进去,确保将 interface_name 的值改为你的网卡名称(如 ens5),并根据需求设置 traffic_limit:
1 |
|
保存并退出:按 Ctrl+O,回车保存,再按 Ctrl+X 退出。
6. 授予执行权限
运行以下命令让脚本可以被执行:
1 | chmod +x /home/admin/check.sh |
7. 设置定时任务
打开 crontab 编辑器:
1 | crontab -e |
在文件末尾添加以下内容:
1 | */5 * * * * /bin/bash /home/admin/check.sh > /tmp/cron_shutdown_debug.log 2>&1 |
- 这表示每 5 分钟执行一次检查脚本。
保存并退出:按 Ctrl+O,回车保存,再按 Ctrl+X 退出。
验证配置
运行 vnstat 检查流量统计是否正常:
1 | vnstat |
- 确保 check.sh 执行无报错:
1 | /bin/bash /home/admin/check.sh |
如果没有语法错误看到的如下
Database updated: 2024-12-01 19:06:20
ens5 since 2024-12-01
rx: 5.66 MiB tx: 9.52 MiB total: 15.18 MiB
monthly
rx | tx | total | avg. rate
————————+————-+————-+—————
2024-12 5.66 MiB | 9.52 MiB | 15.18 MiB | 95.96 kbit/s
————————+————-+————-+—————
estimated 10.88 GiB | 18.29 GiB | 29.17 GiB |
daily
rx | tx | total | avg. rate
————————+————-+————-+—————
today 5.66 MiB | 9.52 MiB | 15.18 MiB | 95.96 kbit/s
————————+————-+————-+—————
estimated 7.11 MiB | 11.96 MiB | 19.07 MiB |
- 查看定时任务日志:
1 | cat /tmp/cron_shutdown_debug.log |
配置完成后,服务器会每 5 分钟检查一次流量是否超限,超限即自动关机。
大功告成