logo NodeSeekbeta

【TrafficCop大更新】支持TG推送!

20240705 03:05找到问题所在了,时区问题导致推送时间不对,找倒数十行可能找不到流量参数,现在是从后往前找,直到找到流量参数为止。修复了,可以更新了。肝了一晚上,现在支持自定义每日流量报告的时间,你想每个小鸡什么时候通知就什么时候,当然你也可以设置都是一样的时间,一下子冒出来一堆,享受坐拥数🐔的快感。本来还想配置不完整配置允许用户只输入不完整的配置项,结果调试了一小时都是报错,无奈只能放弃。配置不完整现在只能初始化配置。还好这个情况不常出现。
另外还更新了主脚本流量显示为“.235 GB”的bug,现在可以正常显示为“0.235 GB”了。请大家一并更新主脚本。


项目地址:https://github.com/ypq123456789/TrafficCop
项目前贴:【TrafficCop】监控VPS流量使用,到达限制自动限流,保留SSH端口可用

昨晚有坛友提了这个需求,我想想也是,这个需求应该大伙们都需要。所以,肝了昨天一个晚上加今天一天,调试出了这个功能。此中辛苦,不足为外人道也。不多说了,求鸡腿!求给项目点个star!愿意赞助的可以看看项目readme最后。
目前我暂时使用没啥问题,大伙们多测试使用下。

Telegram Bot 集成

TrafficCop 现在集成了 Telegram Bot 功能,可以发送以下通知:

  • 限速警告
  • 限速解除通知
  • 新周期开始通知
  • 关机警告
  • 每日流量报告

要使用此功能,请在脚本配置过程中提供你的 Telegram Bot Token 和 Chat ID。

Telegram Bot Token 在你创建机器人时会显示。

Chat ID获取方法:https://api.telegram.org/bot${BOT_TOKEN}/getUpdates

${BOT_TOKEN}是你的 Telegram Bot Token

坛友提醒:chatid还可以找bot获取, 更简单, 比如username_to_id_bot

支持自定义主机名,一个机器人就可以统一管理你的所有小鸡!

相关命令

一键推送脚本

curl -H "Accept: application/vnd.github.v3.raw" -fsSL "https://api.github.com/repos/ypq123456789/TrafficCop/contents/tg_notifier.sh" | tr -d '\r' > /root/tg_notifier.sh && chmod +x /root/tg_notifier.sh && bash /root/tg_notifier.sh

查看tg推送定时执行日志

tail -f -n 30 /root/tg_notifier_cron.log

查看当前状态

tail -f -n 30 /tmp/last_traffic_notification

杀死所有TG推送进程

pkill -f tg_notifier.sh && crontab -l | grep -v "tg_notifier.sh" | crontab -

推送示意如下:
image

12345
  • 话说预设配置大家可以帮忙pr啊,总不能全让我一个人写吧家人们

  • 可以多个小鸡用一个bot 还是每个小鸡都要申请?

  • CDT那个配置文件我看写的限制是300 是为啥

  • @jeez #1 代码逻辑上,只要你每个小鸡都装脚本,可以共用bot,但是目前我还没做机器名区分的代码,之后慢慢弄吧,先跑起来再说

  • @bacon159 #3 等大佬升级 一个bot能区分服务器

  • 我敲 我刚把bark推送加上
    你竟然更新了tg xhj017

  • @芷理 #6 那你速速pr哈哈哈哈,最好是单独脚本,不要干扰主脚本哈哈,现在已经又臭又长了,一点都不敢动了

  • 前排支持。感谢,加鸡腿

  • @-- #8 谢谢支持!可以测试使用下

  • @bacon159 #7
    哈哈 我就自己用的 很粗糙
    只是在主脚本加了两句话 限速或者关机的时候先curl了一下

    # 推送URL
    PUSH_URL=""
    
    ...
    # 修改 check_and_limit_traffic 函数
    check_and_limit_traffic() {
        local current_usage=$(get_traffic_usage)
        local limit_threshold=$(echo "$TRAFFIC_LIMIT - $TRAFFIC_TOLERANCE" | bc)
        
        echo "$(date '+%Y-%m-%d %H:%M:%S') 当前使用流量: $current_usage GB,限制流量: $limit_threshold GB" | tee -a "$LOG_FILE"
        
        if (( $(echo "$current_usage > $limit_threshold" | bc -l) )); then
            echo "$(date '+%Y-%m-%d %H:%M:%S') 流量超出限制" | tee -a "$LOG_FILE"
            if [ "$LIMIT_MODE" = "tc" ]; then
                echo "$(date '+%Y-%m-%d %H:%M:%S') 使用 TC 模式限速" | tee -a "$LOG_FILE"
                if [ -n "$PUSH_URL" ]; then
                    curl -X GET "$PUSH_URL/Aliyun%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%B5%81%E9%87%8F%E8%AD%A6%E5%91%8A%2F%E5%BD%93%E5%89%8D%E4%BD%BF%E7%94%A8%E6%B5%81%E9%87%8F%3A%20$current_usage%20GB%0A%E9%99%90%E5%88%B6%E6%B5%81%E9%87%8F%3A%20$limit_threshold%20GB%0A%E5%B7%B2%E9%99%90%E9%80%9F"
                fi
                tc qdisc add dev $MAIN_INTERFACE root tbf rate ${LIMIT_SPEED}kbit burst 32kbit latency 400ms
            elif [ "$LIMIT_MODE" = "shutdown" ]; then
                echo "$(date '+%Y-%m-%d %H:%M:%S') 流量超出限制,系统将在 1 分钟后关机" | tee -a "$LOG_FILE"
                if [ -n "$PUSH_URL" ]; then
                    curl -X GET "$PUSH_URL/Aliyun%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%B5%81%E9%87%8F%E8%AD%A6%E5%91%8A%2F%E6%B5%81%E9%87%8F%E8%B6%85%E5%87%BA%E9%99%90%E5%88%B6%EF%BC%8C%E7%B3%BB%E7%BB%9F%E5%B0%86%E5%9C%A8%201%20%E5%88%86%E9%92%9F%E5%90%8E%E5%85%B3%E6%9C%BA"
                fi
                shutdown -h +1 "流量超出限制,系统将在 1 分钟后关机"
            fi
        else
            echo "$(date '+%Y-%m-%d %H:%M:%S') 流量正常,清除所有限制" | tee -a "$LOG_FILE"
            tc qdisc del dev $MAIN_INTERFACE root 2>/dev/null
            shutdown -c 2>/dev/null  # 取消可能存在的关机计划
        fi
    }
    
12345

你好啊,陌生人!

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

📈用户数目📈

目前论坛共有72033位seeker

🎉欢迎新用户🎉