收起左侧

为 Aria2 自动更新 Tracker 列表的 Linux Shell 脚本

1
回复
66
查看
[ 复制链接 ]

2

主题

3

回帖

0

牛值

江湖小虾

为 Aria2 自动更新 Tracker 列表的 Linux Shell 脚本

#!/bin/bash
#飞牛NAS aria2 Tracker自动更新脚本
# 配置区
TRACKER_SOURCE="https://cf.trackerslist.com/best.txt"
ARIA2_CONFIG="/var/apps/aria2/var/aria2.conf"  # 您指定的配置文件路径
BACKUP_DIR="/var/apps/aria2/backup"            # 备份目录(需写权限)
MAX_TRACKERS=100                                # 推荐值,避免URI过长
RPC_PORT="6800"                                # Aria2 RPC端口
RPC_SECRET=""                                  # 如果未在配置中设置,留空

# 检查依赖
if ! command -v curl &> /dev/null; then
    echo "❌ 请先安装curl: sudo apt install curl"
    exit 1
fi

# 创建备份目录(需sudo权限)
sudo mkdir -p "$BACKUP_DIR"
sudo chown $(whoami):$(whoami) "$BACKUP_DIR"

# 获取当前时间戳
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")

# 备份旧配置(保留权限)
echo "🔹 备份配置文件到: $BACKUP_DIR/aria2.conf.backup_$TIMESTAMP"
sudo cp -p "$ARIA2_CONFIG" "$BACKUP_DIR/aria2.conf.backup_$TIMESTAMP"

# 获取最新Tracker列表
echo "🔹 从 $TRACKER_SOURCE 获取Tracker列表..."
TRACKERS=$(curl -fsSL "$TRACKER_SOURCE" | grep -v '^$' | head -n $MAX_TRACKERS)
if [ -z "$TRACKERS" ]; then
    echo "❌ 获取Tracker列表失败!"
    exit 1
fi

# 格式化为Aria2参数(逗号分隔单行)
ARIA2_FORMATTED=$(echo "$TRACKERS" | paste -sd "," - | sed 's/,/, /g')

# 更新配置文件(需sudo权限)
echo "🔹 更新配置文件: $ARIA2_CONFIG"
if grep -q "bt-tracker=" "$ARIA2_CONFIG"; then
    sudo sed -i "s|bt-tracker=.*|bt-tracker=$ARIA2_FORMATTED|g" "$ARIA2_CONFIG"
else
    echo "bt-tracker=$ARIA2_FORMATTED" | sudo tee -a "$ARIA2_CONFIG" >/dev/null
fi

# 自动获取RPC密码(如果未手动指定)
if [ -z "$RPC_SECRET" ]; then
    RPC_SECRET=$(sudo grep "^rpc-secret=" "$ARIA2_CONFIG" | cut -d= -f2)
fi

# 动态加载配置(无需重启Aria2)
if pidof aria2c >/dev/null && [ -n "$RPC_SECRET" ]; then
    echo "🔄 通过JSON-RPC动态加载新Tracker..."
    curl -fsS -X POST "http://localhost:$RPC_PORT/jsonrpc" -d '{
        "jsonrpc": "2.0",
        "id": "tracker-update",
        "method": "aria2.changeGlobalOption",
        "params": [
            "token:'"$RPC_SECRET"'",
            { "bt-tracker": "'"$ARIA2_FORMATTED"'" }
        ]
    }' && echo -e "\n🎯 动态更新成功!"
else
    echo "⚠️ 请手动重启Aria2以应用更改: sudo systemctl restart aria2"
fi

# 结果输出
echo -e "\n✅ 更新完成!最新Tracker列表:"
echo "$TRACKERS" | nl
echo -e "\n📌 配置文件位置: $ARIA2_CONFIG\n💾 备份文件: $BACKUP_DIR/aria2.conf.backup_$TIMESTAMP"

迅雷太恶心了开了超级会员还要限制流量!果断更换下载工具。

(crontab -l; echo "0 3 * * * $HOME/aria2-tracker-updater.sh >> $HOME/.aria2/tracker-update.log 2>&1") | crontab -

设置计划任务,记得给脚本运行权限

收藏
送赞
分享

0

主题

3

回帖

0

牛值

江湖小虾

怎么操作的

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则