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


 

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




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





» 相关内容
  LC并联谐振用于模拟混频详解
  条形磁铁的磁场方向判断方法
  PCIE开关和桥接的区别
  精密电阻快速匹配方法
  二次曲面参数及flashlight效果
  AHP算法之matlab代码
  LVDS需要注意的几个点
  阴阳与男女之区别
  四象限光电探测器的位置公式
  外触发获取数据实现原理
  自定义USB设备供电不足最终解..
  USB设备连接异常现象
  MCU程序中变量过多引发内存不..
  NFC及其爆破思路
  铁电存储器