阿里云

阿里云共享带宽流量使用达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,清理流量统计信息文件,并且关闭系统,由于重启会清空统计信息,因此并不会无限重启
if [ $MAX_GB -gt 100 ]
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

本教程我觉得对我有帮助,特此记录。

文章来源:nodeseek


阅读量:0