一个懒散的博客

Aria2自动更新BT Tracker服务器列表的方法

说明

公开的BT tracker服务器,因为种种原因总会经常失效,要想获取更多的peer需要经常维护这份列表。感谢github上的小伙伴提供了这么一份tracker自动更新列表:trackerslist。我们要想Aria2也支持自动更新这份列表,那么你可以按照下面方法来实现。

关于Aria2安装使用教程可参考:https://toot.su/tag/Aria2/

方法

此文仅适用于Centos系统,其它系统稍作变更即可。我没有使用过其它系统,这里也就不提供兼容性的脚本了。

示例:Aria2安装路径:/root/aria2 Aria2配置文件路径:/root/.aria2/aria2.conf

请修改脚本文件中对应的路径 请修改脚本文件中对应的路径 请修改脚本文件中对应的路径。

1、首先将aria2配置成系统服务

#安装组件
yum install -y psmisc
#编辑aria2文件
vi /etc/init.d/aria2
#添加以下代码
DAEMON=/root/aria2/bin/aria2c
     
case "$1" in
    start)
        echo "Starting aria2c"
        nohup $DAEMON -c > /root/.aria2/aria2.log 2>&1 &
        ;;
    stop)
        echo "Shutting down aria2c"
        killall aria2c &>/dev/null
        ;;
    restart)
        killall aria2c &>/dev/null
        sleep 3
        nohup $DAEMON -c > /root/.aria2/aria2.log 2>&1 &
        ;;
    *)
        echo "Usage: /etc/init.d/aria2 {start|stop|restart}"
        exit 1
        ;;
esac
exit
#授权aria2文件
chmod 7777 /etc/init.d/aria2

操作命令:

service aria2 stop  #停止aria2
service aria2 start  #启动aria2
service aria2 restart  #重启aria2

2、Aria2 bt-tracker 列表的更新,需要重启aria2才会生效

#编辑脚本
vi /root/trackers-list-aria2.sh
#添加以下代码
#!/bin/bash
/usr/sbin/service aria2 stop
list=`wget -qO- https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all.txt|awk NF|sed ":a;N;s/\n/,/g;ta"`
if [ -z "`grep "bt-tracker" /root/.aria2/aria2.conf`" ]; then
    sed -i '$a bt-tracker='${list} /root/.aria2/aria2.conf
    echo add......
else
    sed -i "s@bt-tracker=.*@bt-tracker=$list@g" /root/.aria2/aria2.conf
    echo update......
fi
#授权脚本
chmod +x /root/trackers-list-aria2.sh

3、使用crontab任务计划程序,实现自动更新

crontab -e  #添加定时任务,如以下2个

每30分钟更新一次tracker列表(实际不需要这么频繁 你可以自己定义更新频率)

*/30 * * * * /root/trackers-list-aria2.sh

每5分钟启动一次aria2,防止aria2崩了

*/5 * * * * /usr/sbin/service aria2 start

原文地址:Aria2 bt-tracker跟踪服务器列表自动更新

赞(1)