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                 # 再启动,如此可以了。


 

点击数: 58   打印  添加到收藏   发布时间: 2020-04-25




上一篇:linux脚本实时检测U盘插拔驱动aria2c
下一篇:Teamview远程ID和PWD自动回传方法





» 相关内容
  ubuntu上lua的tcp和udp服务方..
  cpulimit编译ipk包针对AR71XX..
  手动安装opkg方法ipk包-openwr..
  关于MAX3485芯片导致的多串口..
  微波雷达的两个明显作用
  3D打印材料分类特点
  DC-005插座的切换供电功能
  中位滤波算法-net版VB
  麦克风的负DB详细解释
  MD5加密的一段代码
  滤波函数增强版
  Matlab模拟PID方法-推荐
  Matlab强制拟合函数过零方法
  清空USB FX2LP FIFO缓冲方法
  Savgol萨维基购耳滤波方法-MAT..