解决阿里云流量超标的脚本:支持获取已使用的流量/检查流量是否超过限制/恢复网络
199 人阅读 | 时间:2024年05月27日 20:17
阿里云买个99元一年的vps,有300G流量。一般够用,但如果超了呢?服务器超出月流量配额后,流量将按照实际使用量进行收费,价格为0.8元/GB,贵得超过买配置更高的机器。所以,预估自己网站流量,是否超过vps套餐的流量。超过的话,就买更高配置的机型。
你要是没多少看的小网站,就不用操心流量了,除非遇到搞事的被刷流量。
那么,流量快到了,就自动断网,如何实现?一个脚本就能解决问题:
sudo apt-get install vnstat 安装 vnstat 编写脚本: 创建一个名为 monitor_traffic.sh 的脚本文件,并添加以下内容: #!/bin/bash # 配置部分 INTERFACE="eth0" # 替换为实际的网络接口名称 LIMIT=1000000 # 限制1000GB,以MB为单位 VNSTAT_DB="/var/lib/vnstat/$INTERFACE" # vnstat数据库文件路径 # 获取已使用的流量 USED=$(vnstat --oneline -i $INTERFACE | awk -F';' '{print $10}' | sed 's/[^0-9]*//g') # 检查流量是否超过限制 if [ "$USED" -ge "$LIMIT" ]; then echo "流量限制已达,断开网络连接" # 断开网络连接(适用于systemd管理的网络服务) sudo systemctl stop NetworkManager.service sudo systemctl stop networking.service # 创建一个标记文件,用于在系统重启后恢复网络 touch /tmp/network_disabled_due_to_traffic fi 如果你紧急时候需要恢复网络 在 /etc/rc.local 中添加以下内容以在系统启动时检查并恢复网络: #!/bin/bash if [ -f /tmp/network_disabled_due_to_traffic ]; then echo "恢复网络连接" # 启动网络连接 sudo systemctl start NetworkManager.service sudo systemctl start networking.service rm /tmp/network_disabled_due_to_traffic fi exit 0 定期运行监控脚本: 使用 crontab 定
评论专区