Bt 软件通过 Tracker 获取 P2P Server,定期更新对下载速度影响很大,本着一切重复工作都交给计算机执行的理念,我写了个 Shell 自动更新脚本,其实网络上不乏此类脚本,本文更多的是分享几个 Shell 技巧。
使用方法
首先,复制下面的脚本粘贴到代码编辑器中,不要使用 Windows 记事本。然后修改第 5-6 行的 Aria2 RPC 地址
和 密钥
,最后将修改好的代码粘贴到终端执行即可。
- object=/usr/local/bin/update_trackers.sh
- cat > $object <<\SCRIPT
- #!/usr/bin/env bash
-
- rpc=http://127.0.0.1:6800/jsonrpc
- passwd=
-
- trackers=(
- https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all.txt
- https://newtrackon.com/api/stable
- https://torrents.io/tracker-list/?download=latest
- )
-
- for tracker in ${trackers[@]}
- do
- data="$data\n`curl -s $tracker`"
- done
-
- data="`echo -e "$data" | sort -u | sed ':a;N;$!ba;s/\n/,/g;s/^,//'`"
-
- json="`cat <<JSON
- {
- "jsonrpc": "2.0",
- "method": "aria2.changeGlobalOption",
- "id": "cron",
- "params": [
- "token:$passwd",
- {
- "bt-tracker": "$data"
- }
- ]
- }
- JSON
- `"
-
- [ -n "$data" ] && curl $rpc -d "$json"
-
- SCRIPT
-
- chmod +x $object
- echo -e "`crontab -l`\n0 3 * * * $object" | crontab
几个技巧
其实也谈不上技巧,就是基本用法。首先是数组赋值,如果每个元素很长,可以换行以增强可读性。
- nums=(
- 1
- 2
- 3
- )
第二个是利用 HereDoc 拼接 json,保留格式增强可读性。
- json="`cat <<JSON
- "users": [{
- "name": "Donald Trump",
- "age: "73",
- "party": "Communist Party of China"
- }]
- JSON
- `"
第三个是不借助 vim 等编辑器,快速添加定时任务。
- echo -e "`crontab -l`\n0 3 * * * reboot" | crontab
如有问题请在下方留言,文章转载请注明出处,详细交流请加下方群组!请大佬不要屏蔽文中广告,因为它将帮我分担服务器开支,如果能帮忙点击我将万分感谢。
强调几点:(该留言由系统自动生成!)
1. 请不要刷广告,本站没有流量!
2. 我不回复虚假邮箱,因为回复了你也看不到!
3. 存在必须回复的隐藏内容时,可以直接使用表情框里的阿鲁表情!