TMDB Hosts 自动更新与同步 DnsParse 脚本 & 远程版 🌟

本文介绍一套用于自动更新 TMDB 相关域名的 DNS 解析记录,并将其同步到常用媒体服务(如 Emby、Nastools)的脚本工具集。所有脚本均配备完整的日志记录与错误处理功能,支持通过计划任务自动执行。


📖 目录导航


✨ 脚本特点与功能

  • 🌐 多 DNS 提供商支持:使用多个公共 DNS 解析服务获取最新的 IP 地址,提高解析成功率。
  • 🏓 智能 IP 筛选:自动 Ping 测试所有解析到的 IP,仅保留可连通的高质量 IP。
  • 💾 无损更新 Hosts:采用标记块(###start######end###)方式更新,保留原有 hosts 内容。
  • 📂 多服务同步:支持将更新后的 hosts 文件自动同步到 Emby 和 Nastools 的 Docker 配置目录。
  • 📝 详细日志记录:所有操作均有详细的中文日志,方便排查问题与查看执行状态。
  • ⏰ 自动化部署:提供一键执行命令与 crontab 计划任务配置,实现完全自动化。

🐍 安装 Python3

1
2
sudo apt update && sudo apt install python3 -y && \
python3 --version

🔧 DnsParse.py 详解

该脚本通过 DNS 解析获取指定域名(api.themoviedb.org, image.tmdb.org, www.themoviedb.org)的 IP 地址,测试它们的连通性,并将可用的 IP 地址写入系统 hosts 文件(/etc/hosts)以优化访问速度。

一键执行命令

1
2
3
4
5
# 从主站点下载执行
curl -sL script.meimolihan.eu.org/hosts/DnsParse.py | python3 -

# 或从 Gitee 镜像下载执行
curl -sL gitee.com/meimolihan/script/raw/master/hosts/DnsParse.py | python3 -

验证更新结果

1
cat /etc/hosts

🔄 nastools-sync-hosts.sh 详解

此脚本用于将系统的 hosts 文件(/etc/hosts)自动同步到 Nastools 配置目录(/vol1/1000/compose/nastools/config/hosts),并记录详细的中文日志。

一键执行命令

1
2
3
4
5
# 从主站点下载执行
bash <(curl -sL script.meimolihan.eu.org/hosts/nastools-sync-hosts.sh)

# 或从 Gitee 镜像下载执行
bash <(curl -sL gitee.com/meimolihan/script/raw/master/hosts/nastools-sync-hosts.sh)

验证同步结果

1
cat /vol1/1000/compose/nastools/config/hosts

🔄 emby-sync-hosts.sh 详解

此脚本用于将系统的 hosts 文件(/etc/hosts)自动同步到 Emby 配置目录(/vol1/1000/compose/emby/config/hosts),并记录详细的中文日志。

一键执行命令

1
2
3
4
5
# 从主站点下载执行
bash <(curl -sL script.meimolihan.eu.org/hosts/emby-sync-hosts.sh)

# 或从 Gitee 镜像下载执行
bash <(curl -sL gitee.com/meimolihan/script/raw/master/hosts/emby-sync-hosts.sh)

验证同步结果

1
cat /vol1/1000/compose/emby/config/hosts

⏰ 计划任务设置

以下 crontab 配置可实现每天自动更新 hosts 并同步到相关服务:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 创建或更新计划任务
cat > /var/spool/cron/crontabs/$USER <<'EOF'
# 添加更新hosts文件定时任务,每天凌晨一点十分执行(日志:tmdb-hosts.log)
10 1 * * * curl -sL gitee.com/meimolihan/script/raw/master/hosts/DnsParse.py | python3 - >> /var/log/cron-tasks/tmdb-hosts.log 2>&1

# hosts文件-同步到 emby,每天凌晨一点十五分执行(日志:emby-hosts.log)
15 1 * * * bash <(curl -sL gitee.com/meimolihan/script/raw/master/hosts/emby-sync-hosts.sh)

# hosts文件-同步到 nastools,每天凌晨一点二十分执行(日志:nastools-hosts.log)
20 1 * * * bash <(curl -sL gitee.com/meimolihan/script/raw/master/hosts/nastools-sync-hosts.sh)
EOF

# 应用计划任务
crontab /var/spool/cron/crontabs/$USER

# 查看已设置的计划任务
crontab -l

📋 查看同步日志

所有同步操作均有详细日志记录,可通过以下命令查看:

1
2
3
4
5
6
7
8
# 查看 nastools 同步日志
cat /var/log/cron-tasks/nastools-hosts.log

# 查看 emby 同步日志
cat /var/log/cron-tasks/emby-hosts.log

# 查看 DNS 解析更新日志
cat /var/log/cron-tasks/tmdb-hosts.log

💡 提示:确保脚本有执行权限,并且相关目录存在。首次运行前可手动执行脚本测试功能是否正常。