logo NodeSeekbeta

阿里云共享带宽流量使用达100GB自动关机

我使用的是debian12系统,如果你使用的是其他系统请注意安装bc命令以及关注bc命令和shutdown的所在路径,用which bc和 which shutdown可以进行查看!

  1. 安装bc命令
apt install -y bc
  1. 创建监控脚本文件并授予执行权限
mkdir /opt/monitoring && touch /opt/monitoring/traffic.sh  && chmod +x /opt/monitoring/traffic.sh 
  1. 写入脚本内容
echo '#!/bin/bash

# 获取网络接口的接收和发送字节数
RX=$(cat /proc/net/dev | grep eth0 | tr -s " " | cut -d " " -f3)
TX=$(cat /proc/net/dev | grep eth0 | tr -s " " | cut -d " " -f11)

# 将字节数转换为GB
RX_GB=$(echo "$RX / 1024 / 1024 / 1024" | /usr/bin/bc)
TX_GB=$(echo "$TX / 1024 / 1024 / 1024" | /usr/bin/bc)

# 比较获取入站和出站流量中的最大值
MAX_GB=$RX_GB
if [ $TX_GB -gt $RX_GB ]
then
    MAX_GB=$TX_GB
fi

# 如果最大流量超过100GB或者每月1号,清理流量统计信息文件,并且关闭系统,由于重启会清空统计信息,因此并不会无限重启
if [ $MAX_GB -gt 100 -o $(date +%d) -eq 1 ]
then
  rm -f  /opt/monitoring/use_traffic.txt && /sbin/shutdown -h now
else
    echo "当前时间: $(date)" > /opt/monitoring/use_traffic.txt
    echo "接收流量: $RX_GB GB" >> /opt/monitoring/use_traffic.txt
    echo "发送流量: $TX_GB GB" >> /opt/monitoring/use_traffic.txt
fi
'>/opt/monitoring/traffic.sh 
  1. 创建系统服务
echo '
[Unit]
Description=traffic monitoring

[Service]
User=root
Group=root
ExecStart=/opt/monitoring/traffic.sh
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
'> /etc/systemd/system/monitoring.service

5、启动服务并且设置开机自启动

systemctl daemon-reload && systemctl enable monitoring.service && systemctl start monitoring.service
12
  • 中途被释放了是不是就白统计了 xhj001

  • 顶一下

  • @orangewood #1 我用的不是那个抢占式的机器诶,那个被释放的几率太大了

  • 这玩意内地就20g流量

  • 你这关机后,更加容易被释放,如果是抢占式,就要防止EIP被反薅收费

  • @vpswabao #7 我没有考虑那个抢占式的,我用的是包月的,我只是防止共享带宽超量了,设置的自动关机的

  • bd,可以再搞个每月一号自动重启机器

  • 每月1号不重置流量?

12

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有71814位seeker

🎉欢迎新用户🎉