二维码

阿里云买个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 定


评论专区
  • 昵 称必填
  • 邮 箱必填
  • 网 址选填
◎已有 0 人评论
二维码

分享:

支付宝

微信