Openwrt下aria2断电重启tracker丢失问题及修复
Aria2的功能不表,可自行度,主要方便之处在于不限速,可常驻路由,无需开电脑完成离线下载。但默认的固件,一般都有个问题,就是路由断电重启后,原有的 traker分布链会丢失,且分布链需要不定时更新,完全依赖纯手动显然是不靠谱的。那就需要来个.sh脚本自动挂载。但网上的各种脚本,运行后,只要重启aria2服务,依然会丢失traker分布链。究其原因是,openwrt固件会把tracker信息同时写进tmp和etc文件夹下的配置文件里,aria2服务重启后,会去比对校验两个位置的文件,如果不同,就不做任何更新,网上的脚本都是指更新etc下的文件,事实证明是有误区存在的。修正后的脚本如下,可以写在定时任务里。比如每天早上8点更新。crontab的用法自行百度。下面是自动更新traker脚本,按.sh后缀命名保存,赋予777权限。在任务计划里,添加crontab定时运行。
/etc/init.d/aria2 disable # 须先禁止服务 sleep 6 # 数字可以适当改大点,根据你的路由器速度快慢而定 /etc/init.d/aria2 enable # 调用这个使能服务, 使能一次aria2服务。 sleep 5 list=`wget --no-check-certificate -qO- https://trackerslist.com/best.txt|awk NF|sed ":a;N;s/\n/,/g;ta"` if [ -z "`grep "bt-tracker" /tmp/etc/aria2/aria2.conf`" ]; then sed -i ‘$a bt-tracker=‘${list} /tmp/etc/aria2/aria2.conf echo add...... else sed -i "s@bt-tracker.*@bt-tracker=$list@g" /tmp/etc/aria2/aria2.conf # 把所有写了 aria2 bt tracker的文件全都改一遍 echo update tmp conf...... fi if [ -z "`grep "bt-tracker" /var/etc/aria2/aria2.conf`" ]; then sed -i ‘$a bt-tracker=‘${list} /var/etc/aria2/aria2.conf echo add...... else sed -i "s@bt-tracker.*@bt-tracker=$list@g" /var/etc/aria2/aria2.conf # 把所有写了 aria2 bt tracker的文件全都改一遍 echo update var conf...... fi sed -i "s@bt_tracker.'.*@bt_tracker '$list'@g" /etc/config/aria2 # 把所有写了 aria2 bt tracker的文件全都改一遍 echo update etc conf...... /etc/init.d/aria2 restart # 再启动,如此可以了。