Lazy loaded image
OpenWrt Aria2 Tracker自动更新脚本
字数 1175阅读时长 3 分钟
2025-1-31
2025-2-20
type
status
date
slug
summary
tags
category
icon
password
😀
优化说明:
  1. #!/bin/bash: Shebang 行,指定脚本使用 bash 解释器。
  1. 脚本配置:
      • TRACKER_URL: BT Tracker 列表的 URL。
      • TRACKER_FILE: 下载的 Tracker 列表保存到的临时文件路径。
      • ARIA2_CONFIG: Aria2 配置中用于存储 BT Tracker 列表的 UCI 配置项的名称。
      • LOG_FILE: 日志文件的路径。
  1. log() 函数: 一个简单的日志记录函数,将消息和时间戳追加到日志文件。
  1. command_exists() 函数: 检查指定的命令是否存在。
  1. 检查 wget 命令: 如果 wget 命令不存在,记录错误并退出脚本。
  1. 下载 BT Tracker 列表:
      • 使用 wget -q 静默下载 Tracker 列表。
      • DOWNLOAD_STATUS 变量保存 wget 命令的退出状态。
      • 检查下载的文件是否存在且非空。如果下载失败或文件为空,记录错误并退出脚本。
  1. 读取和清理 Tracker 列表:
      • 使用 tr -d '\r\n' 删除回车符和换行符。
      • 使用 sed 's/[^[:print:]]//g' 删除所有非打印字符。
  1. Tracker 列表格式验证 (使用 grep):
      • 使用 grep -Eq 和正则表达式检查 Tracker 列表是否符合基本的格式(以 http://, https://, 或 udp:// 开头,用逗号分隔)。
      • 如果格式不正确,记录警告消息。
  1. 更新 Aria2 配置:
      • 使用 uci set 将清理后的 Tracker 列表设置到 Aria2 配置中。
      • 使用 uci commit aria2 提交配置更改。
      • 检查 uci 命令是否成功。如果失败,记录错误并退出脚本。
  1. 检查 Aria2 服务脚本: 检查 /etc/init.d/aria2 文件是否存在且可执行。
  1. 重启 Aria2 服务:
      • 使用 /etc/init.d/aria2 restart 重启 Aria2 服务。
      • 检查重启是否成功。如果失败,记录错误并退出脚本。
  1. 记录成功消息: 如果一切顺利,记录成功消息并退出脚本。
关键点:
  • 可能会中断下载: 这个脚本会直接重启 Aria2 服务,这可能会导致正在进行的下载短暂中断。
  • 基本的错误处理: 脚本包含了一些基本的错误处理,例如检查命令是否存在、下载是否成功、uci 命令是否成功、Aria2 服务脚本是否存在以及重启是否成功。
  • Tracker 列表格式验证: 使用 grep 和正则表达式进行基本的格式验证。
  • OpenWrt 环境: 脚本使用了 uci 命令,这是 OpenWrt 特有的配置管理工具。
上一篇
Debian双栈网络时开启IPv4优先
下一篇
基于Cloudflare Worker超级代理