找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 7966|回复: 22

openWRT aria2 tracker自动更新脚本

[复制链接]
发表于 2021-3-1 18:56 | 显示全部楼层 |阅读模式
本帖最后由 尉迟申棠 于 2023-2-21 18:53 编辑

openwrt固件是lede仓库编译的。
其他固件,应该需要自行修改代码。

步骤:
       1,ssh进路由                     2,cd /mnt/sda1/Samba/aria2/config/  找个合适的文件夹放即将创建的脚本。(一般放在默认配置目录  /var/etc/aria2 ) 我的脚本位置在  /mnt/sda1/Samba/aria2/config/ 文件夹下。。
            /*   备注: 配置文件目录中 aria2.conf.main  配置文件最上面有句话————# Auto generated file, changes to this file will be lost. 此脚本自动生成,修改无效。
            写了好几次脚本都无效,才发现这句话。     aria2有需要自定义配置需求时,应该修改/etc/config/aria2 这个配置文件。*/      
       3,touch aria2.tracker.autoupdate.sh 创建 自动更新的空白脚本。 名字可以随便改。
       4,vim aria2.tracker.autoupdate.sh  然后 将下面的代码复制进 aria2.tracker.autoupdate.sh 脚本中。
  1. #!/bin/bash
  2. wget https://trackerslist.com/best_aria2.txt -O /tmp/best_aria2.txt
  3. tmp=$(cat /tmp/best_aria2.txt)
  4. sed -i "s|bt_tracker .*|bt_tracker ''|" /etc/config/aria2
  5. sed -i "s|bt_tracker '|&$tmp|" /etc/config/aria2
复制代码
       5,在系统 计划任务 中 添加命令              00 6 * * * sleep 5  && sh /mnt/sda1/Samba/aria2/config/aria2.tracker.autoupdate.sh
             /*每天早上6点 自动更新tracker。 我用的[color=var(--theme-color,#42b983)]XIU2/TrackersListCollection tracker。八个小时更新一次 */
***************************  2021.03.12 更新  **********************************
使用此脚本前,请先在 aria2配置
[color=var(--primary)]BitTorrent 设置

附加 Bt tracker 列表 先添加一个
wss://104.28.12.18:443/announce

##不先添加,aria2的配置中就没有
option bt_tracker '' 项;无法设置成功。
**


贴一个不需要重启aria2的新脚本(rpc控制):
  1. #!/bin/bash

  2. if [ -f "/tmp/all_aria2.txt" ]; then
  3.   rm /tmp/all_aria2.txt
  4. fi

  5. rpc=http://127.0.0.1:6800/jsonrpc
  6. passwd=123456789

  7. trackers=(
  8.   https://cdn.staticaly.com/gh/XIU2/TrackersListCollection/master/all_aria2.txt
  9. )

  10. for tracker in ${trackers[@]}; do
  11.   curl -s $tracker >>/tmp/all_aria2.txt
  12. done

  13. tmp="$(cat /tmp/all_aria2.txt | sort -u | sed ':a;N;$!ba;s/\n/,/g;s/^,//')"

  14. json="$(
  15.   cat <<JSON
  16. {
  17.     "jsonrpc": "2.0",
  18.     "method": "aria2.changeGlobalOption",
  19.     "id": "cron",
  20.     "params": [
  21.         "token:$passwd",
  22.         {
  23.             "bt-tracker": "$tmp"
  24.         }
  25.     ]
  26. }
  27. JSON
  28. )"

  29. [ -n "$tmp" ] && curl $rpc -d "$json"

  30. exit
复制代码










我的恩山、我的无线 The best wifi forum is right here.
发表于 2021-3-1 19:57 | 显示全部楼层
本帖最后由 wulishui 于 2021-3-1 20:00 编辑
尉迟申棠 发表于 2021-3-1 19:43
你可能没有看代码。最终修改的配置文件是 /etc/config/aria2 ;这个配置文件不是自动生成的,修改是有效 ...

果然。不过这得下一次启动才会生效。
除非在后面加一句/etc/init.d/aria2 restart。但这就会导致下载中断。
要改这里不用那么复杂的:
  1. #!/bin/bash
  2. wget https://trackerslist.com/best_aria2.txt -O /tmp/best_aria2.txt
  3. [ -s /tmp/best_aria2.txt ] || exit 0 #必须加一个文件判断,不然有时候断网下载不成功会没有内容,导致下面也更新进去。
  4. tmp=$(cat /tmp/best_aria2.txt)

  5. uci set aria2.main.bt_tracker=$tmp
  6. uci commit aria2
  7. /etc/init.d/aria2 restart
复制代码

点评

我改了连接(https://ngosang.github.io/trackerslist/trackers_all.txt)和文件名字,为什么uci set 写不上啊? #!/bin/bash wget https://cdn.jsdelivr.net/gh/ngosang/trackerslist@master/trackers_all_ip.txt  详情 回复 发表于 2023-3-14 16:52
牛逼 用你的脚本已经成功。非常感谢  详情 回复 发表于 2022-10-31 14:00
uci set 这命令还是第一次见,学习学习。一直都是用Linux命令在openwrt里面写l脚本。  详情 回复 发表于 2021-3-1 20:01
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-3-1 19:20 | 显示全部楼层
不错。不过不知道aria2是在启动时才读取配置还是运行过程中也会读取,不然即使更新了也没被使用。如果更新后让它重启,有时又会导致下载进程中断。aria2有些下载进程如果中途中断就等于直接停止,无法再继续。

点评

这个问题我记得遇见过。问题不大,aria2运行时也可以修改tracker不需要重启。  详情 回复 发表于 2021-3-1 19:34
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2021-3-1 19:34 | 显示全部楼层
wulishui 发表于 2021-3-1 19:20
不错。不过不知道aria2是在启动时才读取配置还是运行过程中也会读取,不然即使更新了也没被使用。如果更新 ...

这个问题我记得遇见过。问题不大,aria2运行时也可以修改tracker不需要重启。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-3-1 19:36 | 显示全部楼层
看到# Auto generated file, changes to this file will lost.这句话,说明楼主是在做无用功啊。。。我实际改了看了下,的确没被使用。。。这些配置是在aria2启动时生成并且采用,运行过程中需要在aria2或webui中修改才会被保存,自行修改不但不被使用,还会被它原来的配置覆盖。所以修改后要将aria2进程斩立决,再重新启动,才会被使用。

点评

你可能没有看代码。最终修改的配置文件是 /etc/config/aria2 ;这个配置文件不是自动生成的,修改是有效的。  详情 回复 发表于 2021-3-1 19:43
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2021-3-1 19:43 | 显示全部楼层
wulishui 发表于 2021-3-1 19:36
看到# Auto generated file, changes to this file will lost.这句话,说明楼主是在做无用功啊。。。我实际 ...

你可能没有看代码。最终修改的配置文件是 /etc/config/aria2 ;这个配置文件不是自动生成的,修改是有效的。

点评

果然。不过这得下一次启动才会生效。 除非在后面加一句/etc/init.d/aria2 restart。但这就会导致下载中断。 要改这里不用那么复杂的:  详情 回复 发表于 2021-3-1 19:57
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2021-3-1 20:01 | 显示全部楼层
wulishui 发表于 2021-3-1 19:57
果然。不过这得下一次启动才会生效。
除非在后面加一句/etc/init.d/aria2 restart。但这就会导致下载中 ...

uci set 这命令还是第一次见,学习学习。一直都是用Linux命令在openwrt里面写l脚本。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-1-4 13:44 | 显示全部楼层
出个视频吧大佬

点评

哈?出啥视频?  详情 回复 发表于 2022-1-4 20:57
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2022-1-4 20:57 | 显示全部楼层

哈?出啥视频?

点评

最终代码,以及修改的位置?  详情 回复 发表于 2023-1-29 19:57
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-10-31 14:00 | 显示全部楼层
wulishui 发表于 2021-3-1 19:57
果然。不过这得下一次启动才会生效。
除非在后面加一句/etc/init.d/aria2 restart。但这就会导致下载中 ...

牛逼  用你的脚本已经成功。非常感谢

点评

老哥,脚本代码以及修改的位置是哪里?  详情 回复 发表于 2023-1-29 19:54
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2023-1-8 23:33 | 显示全部楼层
谢谢姐姐成功了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2023-1-29 19:54 | 显示全部楼层
namefull 发表于 2022-10-31 14:00
牛逼  用你的脚本已经成功。非常感谢

老哥,脚本代码以及修改的位置是哪里?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2023-1-29 19:57 | 显示全部楼层

最终代码,以及修改的位置?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2023-3-9 18:19 | 显示全部楼层
大佬,rpc那个代码执行后提示
: not foundaria2.tracker.sh: line 2:
/etc/aria2/aria2.tracker.sh: line 10: syntax error: unexpected "(" (expecting "then")
这个该怎么改

点评

嗯?你的bash不支持数组吗??? 你这样,不循环,就一个链接算了... trackers=$(https://cdn.staticaly.com/gh/XIU2/TrackersListCollection/master/all_aria2.txt) curl -s $tracker >>/tmp/all_aria2.txt  详情 回复 发表于 2023-3-25 23:18
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2023-3-14 16:52 | 显示全部楼层
wulishui 发表于 2021-3-1 19:57
果然。不过这得下一次启动才会生效。
除非在后面加一句/etc/init.d/aria2 restart。但这就会导致下载中 ...

我改了连接(https://ngosang.github.io/trackerslist/trackers_all.txt)和文件名字,为什么uci set 写不上啊?
  1. #!/bin/bash
  2. wget https://cdn.jsdelivr.net/gh/ngosang/trackerslist@master/trackers_all_ip.txt -O /tmp/tracker.txt
  3. [ -s /tmp/tracker.txt ] || exit 0
  4. tmp=$( cat /tmp/tracker.txt )

  5. uci set aria2.main.bt_tracker=$tmp
  6. uci commit aria2
  7. /etc/init.d/aria2 restart
复制代码

点评

解决了!空格的问题。  详情 回复 发表于 2023-3-14 17:08
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-3-28 19:05

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表