第一阶段:迁移前的“灵魂打包”

在新旧服务器交替时,你只需要从旧服务器带走这三个文件夹/文件:

  1. /root/scripts/monitor/:这是机器人的心脏,包含所有 .py.sh 脚本。
  2. /usr/local/nginx/conf/vhost/:带走其中的 rss.conf(主配置)和blacklist.conf(黑名单本子)。
  3. Docker 配置文件:带走你的 docker-compose.yml(包含 RSSHub 和 Vaultwarden 的定义)。

第二阶段:新服务器环境初始化

1. 在新服务器上,你需要先完成以下基础安装:

安装 Docker & Compose

curl -fsSL https://get.docker.com | bash

2. 安装 Python 依赖

pip install pyTelegramBotAPI

3. 安装 Rclone(如果你之前配置了网盘备份):按之前的步骤完成 rclone config

第三阶段:复活“指挥中心” (Telegram Bot)

1. 放置文件

将备份的 monitor 文件夹整体上传到新服务器的 /root/scripts/ 目录下。

2. 权限加持

确保所有脚本都有执行权限:

chmod +x /root/scripts/monitor/*.sh

3. 路径自检

打开 /root/scripts/monitor/admin_bot.py,确认以下变量是否正确:

  • TOKEN:你的机器人 Token。
  • ADMIN_ID:你的 Telegram ID。
  • NGINX_CONF:指向新环境的 /usr/local/nginx/conf/vhost/blacklist.conf

4. 启动机器人

mkdir -p /root/scripts/monitor/logs
nohup python3 /root/scripts/monitor/admin_bot.py > /root/scripts/monitor/logs/bot_log.txt 2>&1 &

第四阶段:复活 Nginx 拦截体系

1. 恢复黑名单:将备份的 blacklist.conf 放到新服务器对应位置。

2. 恢复站点配置:将 rss.conf 放入 vhost 目录,并确保其中包含 include /.../blacklist.conf;

3. 重载 Nginx

nginx -t && nginx -s reload

第五阶段:复活 Vaultwarden 备份

由于使用了 docker-compose.yml,恢复非常简单:

1. 将 docker-compose.yml 放到新服务器。

2. 关键环境变量:确保 PING_URL_WHEN_SUCCESSCURL_OPTIONS 里的 Token 和 ChatID 依然有效。

3. 启动

docker-compose up -d

4. 测试:运行以下命令手动触发一次备份,看机器人响不响:

docker exec vaultwarden-backup-1 bash /app/backup.sh

第六阶段:最后的自动化

输入 crontab -e,把之前那两行“护法”指令写进去:

# 1. 每一分钟检查一次是否有高频攻击
* * * * * /bin/bash /root/scripts/monitor/rss_watchdog.sh

# 2. 如果你还想要早上的定时简报(可选)
00 07 * * * /bin/bash /root/scripts/monitor/send_report.sh

💡 避坑总结

  • 权限问题:迁移后如果机器人提示“执行脚本失败”,通常是忘了 chmod +x
  • 路径问题:如果 /list 为空,检查 admin_bot.py 里的 NGINX_CONF 路径是否写对了。