type
status
date
slug
summary
tags
category
icon
password
😀
优化说明:
- #!/bin/bash: Shebang 行,指定脚本使用 bash 解释器。
- 脚本配置:
- TRACKER_URL: BT Tracker 列表的 URL。
- TRACKER_FILE: 下载的 Tracker 列表保存到的临时文件路径。
- ARIA2_CONFIG: Aria2 配置中用于存储 BT Tracker 列表的 UCI 配置项的名称。
- LOG_FILE: 日志文件的路径。
- log() 函数: 一个简单的日志记录函数,将消息和时间戳追加到日志文件。
- command_exists() 函数: 检查指定的命令是否存在。
- 检查 wget 命令: 如果 wget 命令不存在,记录错误并退出脚本。
- 下载 BT Tracker 列表:
- 使用 wget -q 静默下载 Tracker 列表。
- DOWNLOAD_STATUS 变量保存 wget 命令的退出状态。
- 检查下载的文件是否存在且非空。如果下载失败或文件为空,记录错误并退出脚本。
- 读取和清理 Tracker 列表:
- 使用 tr -d '\r\n' 删除回车符和换行符。
- 使用 sed 's/[^[:print:]]//g' 删除所有非打印字符。
- Tracker 列表格式验证 (使用 grep):
- 使用 grep -Eq 和正则表达式检查 Tracker 列表是否符合基本的格式(以 http://, https://, 或 udp:// 开头,用逗号分隔)。
- 如果格式不正确,记录警告消息。
- 更新 Aria2 配置:
- 使用 uci set 将清理后的 Tracker 列表设置到 Aria2 配置中。
- 使用 uci commit aria2 提交配置更改。
- 检查 uci 命令是否成功。如果失败,记录错误并退出脚本。
- 检查 Aria2 服务脚本: 检查 /etc/init.d/aria2 文件是否存在且可执行。
- 重启 Aria2 服务:
- 使用 /etc/init.d/aria2 restart 重启 Aria2 服务。
- 检查重启是否成功。如果失败,记录错误并退出脚本。
- 记录成功消息: 如果一切顺利,记录成功消息并退出脚本。
关键点:
- 可能会中断下载: 这个脚本会直接重启 Aria2 服务,这可能会导致正在进行的下载短暂中断。
- 基本的错误处理: 脚本包含了一些基本的错误处理,例如检查命令是否存在、下载是否成功、uci 命令是否成功、Aria2 服务脚本是否存在以及重启是否成功。
- Tracker 列表格式验证: 使用 grep 和正则表达式进行基本的格式验证。
- OpenWrt 环境: 脚本使用了 uci 命令,这是 OpenWrt 特有的配置管理工具。
- 作者:司徒凌风
- 链接:https://situ.eu.org/article/18c874cb-3972-80f9-a795-fbb7c8512389
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。