宇宙主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

欧基零壹微头条IP归属甄别会员请立即修改密码
123
返回列表 发新帖
楼主: 小便超人

写了一个流量达阈值自动关机的小脚本

[复制链接]
发表于 2024-9-6 13:15:32 | 显示全部楼层
阿里云免费流量20G
是指流出,还是指流入,还是两者加起来?
 楼主| 发表于 2024-9-6 15:33:23 | 显示全部楼层

安装bc,apt install bc
发表于 2024-9-6 18:10:15 来自手机 | 显示全部楼层
脚本有问题,流量累加,运行一次会把原来的流量累加一次
发表于 2024-9-6 19:00:25 来自手机 | 显示全部楼层
调查员 发表于 2024-9-6 13:15
阿里云免费流量20G
是指流出,还是指流入,还是两者加起来?

我问了客服是指流出
发表于 2024-9-7 08:29:43 | 显示全部楼层
七年 发表于 2024-9-5 15:32
阿里云官网是安 公网流量的算的  20G    我现在用了0.2G 你的脚本 设置15G  都自己关机   应该是   把内 ...

你好,你这个图到底在那看到的啊。我怎么找也找不到。想看看流量也看不了。
发表于 2024-9-7 08:56:18 | 显示全部楼层
调查员 发表于 2024-9-7 08:29
你好,你这个图到底在那看到的啊。我怎么找也找不到。想看看流量也看不了。 ...

这个脚本不错
发表于 2024-9-7 09:16:32 | 显示全部楼层
调查员 发表于 2024-9-7 08:29
你好,你这个图到底在那看到的啊。我怎么找也找不到。想看看流量也看不了。 ...


https://cdt.console.aliyun.com/overview

点评

谢谢!  发表于 2024-9-7 09:30
发表于 2024-9-9 00:21:17 | 显示全部楼层
试试用vnstat的月度流量统计功能,能取到网卡月度的tx值,还在测试脚本统计到的和阿里云后台的差多少。阿里云统计的应该是CDT的流出流量。

先安装vnstat
apt install vnstat
激活eth0的vnstat统计
vnstat -i eth0
systemctl restart vnstat
systemctl enable vnstat

脚本如下,先保存脚本到某路径下的文件。
#!/bin/bash

# 设置网卡接口名称
INTERFACE="eth0"

# 设置流量上限(以MB为单位,这里是18000MB,即18GB)
LIMIT=18000 # 18GB in MB

# 设置日志文件路径
LOG_FILE="/var/log/traffic_monitor.log"

# 获取当前时间
CURRENT_TIME=$(date "+%Y-%m-%d %H:%M:%S")

# 从vnstat获取当前月度的流出流量(单位为MB)
current_tx=$(vnstat --oneline -i $INTERFACE -m | grep "`date +'%Y-%m'`" | awk -F "|" '{print $2}' | awk '{print $1 $2}')

# 将流出流量转换为MB单位
if [[ $current_tx == *"KiB"* ]]; then
    current_tx=$(echo "$current_tx" | awk '{print int($1 / 1024)}')
elif [[ $current_tx == *"MiB"* ]]; then
    current_tx=$(echo "$current_tx" | awk '{print int($1)}')
elif [[ $current_tx == *"GiB"* ]]; then
    current_tx=$(echo "$current_tx" | awk '{print int($1 * 1024)}')
fi

# 写入日志并检查流量限制
if [ "$current_tx" -ge "$LIMIT" ]; then
    echo "$CURRENT_TIME - Monthly outgoing traffic limit reached: ${current_tx}MB. Shutting down..." >> "$LOG_FILE"
    sudo shutdown -h now
else
    echo "$CURRENT_TIME - Current outgoing traffic this month: ${current_tx}MB, Limit: ${LIMIT}MB" >> "$LOG_FILE"
fi


然后设置crontab定时每5分钟执行一次和每天凌晨3点清空日志文件。
crontab -e
*/5 * * * * /path/to/your/script.sh
0 3 * * * > /var/log/traffic_monitor.log
发表于 2024-9-9 00:22:02 | 显示全部楼层
开源的 可以
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|FastFib VPS论坛

GMT+8, 2024-9-20 11:42 , Processed in 0.059839 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表