运维状态与待办事项

部署日期: 2026-04-05 · 最后更新: 2026-04-05

📊 当前状态总览

组件状态说明
Nginx (HTTPS) ✓ 运行中 secure_link 签名验证正常,SSL 证书有效至 2026-07-04
R2 → 本地同步 (videos) ⟳ 同步中 ~6,300 / 57,145 文件 (176G / 1.48TB),预计还需 5-7 小时
R2 → 本地同步 (previews) ✓ 完成 57,144 / 57,144 文件 (14GB)
R2 → 本地同步 (thumbs) ⟳ 同步中 ~43,400 / 57,144 文件 (1.4GB / 1.6GB),即将完成
videoop Pipeline ⏸ 待启动 代码和依赖已就绪,等待视频同步完成后启动
Cloudflare Worker ✓ 已激活 VIP_SERVER_URL 已指向 vip.mhana.top
VIP 测试用户 ✓ 已配置 admin (user-1) 和 boy (user-2) 已设为 VIP
旧服务器 videoop ⚡ 注意 仍在旧服务器��行,迁移完成前不要停止

🔴 需要立即关注

1. 监控 rclone 视频同步进度

优先级: 高 · 这是当前唯一的阻塞项

视频文件是最大的同步任务(约 1.48TB),预计 2026-04-05 晚间或 04-06 凌晨完成。

# 检查同步进��
ssh -p 14028 root@137.175.4.97

# 文件数量
ls /data/videos/videos/ | wc -l    # 目标: 57145
ls /data/videos/thumbs/ | wc -l    # 目标: 57144

# 磁盘占用
du -sh /data/videos/*/

# rclone 进程是否还在
ps aux | grep 'rclone sync' | grep -v grep

# 实时日志
tail -f /root/rclone-videos.log
判断同步完成的标志:
ls /data/videos/videos/ | wc -l 显示 57145
ps aux | grep rclone 无结果(进程已退出)
/root/rclone-videos.log 末尾出现完成统计信息

2. 安全:root 密码已更换

优先级: 高 · 确保新密码已妥善保存

初始密码(来自服务商邮件的 MDLNIslhdo4955)已被替换为随机强密码。

⚠️ 新密码请确认已保存到安全位置��若丢失,���要通过服务商控制面板的 VNC / 救援模式重置。

建议后续操作:

🟡 每日监控清单(4月5日 - 4月8日)

Day 1 — 4月5日(今天)

Day 2 — 4月6日

Day 3 — 4月7日

Day 4+ — 4月8日起

🔵 后续待办事项

必做 (Must)

事项时间节点操作
确认 rclone 同步完成 ~4月6日凌晨 ls /data/videos/videos/ | wc -l = 57145
迁移 Pipeline(旧停新启) 同步完成后 旧: 停 → 增量同步 → 新: 启动
前端 VIP 线路实测 Pipeline 迁移后 boy 账号 → Profile → 开启 VIP → 刷视频
SSH 密钥登录 一周内 配置密钥 → 禁用密码登录

建议做 (Should)

事项说明
配置防火墙 (ufw) 仅开放 SSH(14028) + HTTP(80) + HTTPS(443)
设置磁盘告警 / 使用率超 85% 时邮件通知
PM2 日志轮转 pm2 install pm2-logrotate,避免日志撑满磁盘
Nginx 访问日志 开启 access_log 并配置 logrotate,用于分析 VIP 线路使用情况
定时监控脚本 cron 定时检查 Nginx / PM2 / 磁盘 / SSL 状态,异常告警

可选做 (Nice to have)

事项说明
Nginx worker 进程数优化 当前使用默认 auto(48 核 = 48 worker),实际服务静态文件 4-8 个即可
Swap 优化 当前 8GB swap,可调整 swappiness 降低 swap 使用
备用 IP 利用 服务器有第二 IP 137.175.4.98,可用于备用域名或管理入口
VIP 使用统计面板 分析 VIP 用户的使用模式,优化配额策略

📋 Pipeline 迁移操作步骤(完整流程)

以下是从旧服务器迁移到新服务器的完整操作顺序,请严格按顺序执行

Step 1 — 确认同步完成
验证 rclone 视频同步已全部完成
# 在新服务器上
ls /data/videos/videos/ | wc -l    # 必须 = 57145
ps aux | grep rclone               # 应无结果
Step 2 — 停止旧 Pipeline
在旧服务器上停止 videoop
# 在旧服务器上
pm2 stop videoop
# 等待当前处理中的视频完成(观察日志)
Step 3 — 增量同步
同步 Pipeline 停止前最后几个新文件
# 在新服务器上(这次很快,只有少量新增)
rclone sync r2:video-storage/videos/ /data/videos/videos/ \
    --transfers 16 --fast-list --progress
rclone sync r2:video-storage/previews/ /data/videos/previews/ \
    --transfers 16 --fast-list --progress
rclone sync r2:video-storage/thumbs/ /data/videos/thumbs/ \
    --transfers 16 --fast-list --progress
Step 4 — 启动新 Pipeline
在新服务器上启动 videoop
# 在新服务器上
pm2 start /opt/videoop/ecosystem.config.js
pm2 save
pm2 logs videoop    # 观察��志,确认正常启动
Step 5 — 验证
全面验证新 Pipeline 正常工作
# 1. Admin 面板:发送 start 命令,观察响应
# 2. 等待一个视频被处理完成
# 3. 检查新视频是否同时存在于 R2 和本地:
ls /data/videos/videos/{新hash}.dat    # 本地
rclone ls r2:video-storage/videos/{新hash}.dat  # R2

# 4. 测试 VIP 线路能否访问新处理的视频
# 用 Python 签名脚本生成 URL 并 curl 测试
Step 6 — 前端实测
VIP 用户体验测试
# 用 VIP 用户登录前端
# Profile → 开启 VIP 线路
# 刷视频 → 验证视频加载速度
# 检查缩略图和预览是否正常
# 检查配额计时是否正常工作
Step 7 — 清理
确认无误后清理旧服务器
# 在旧服务器上(确认一切正常后��执行)
pm2 delete videoop
# 可选:清理 videoop 目录以释��空间

🛠️ 关键监控命令速查

同步进度

# 文件数
ls /data/videos/videos/ | wc -l
ls /data/videos/thumbs/ | wc -l

# 磁盘占用
du -sh /data/videos/*/

# rclone 进程
ps aux | grep rclone

# 实时日志
tail -f /root/rclone-videos.log

Pipeline 状态

# PM2 进程状态
pm2 status
pm2 logs videoop --lines 30

# 最新处理记录
grep "VIP local copy" \
  /opt/videoop/pipeline.log | tail -5

# 资源占用
pm2 monit

Nginx / 网络

# 服务状态
systemctl status nginx
ss -tlnp | grep nginx

# 健康检查
curl -s https://vip.mhana.top/health

# 错误日志
tail -20 /var/log/nginx/error.log

# SSL 证书到期
certbot certificates

系统资源

# 磁盘
df -h /

# 内存
free -h

# CPU / 负载
uptime
htop

# 连接数
ss -s

🔑 ���钥与凭证清单

⚠️ 以下信息均为敏感凭证,请妥善保管,不要泄露。
凭证位置用途
SSH root 密码 你自己保管 服务器远程管理
VIP HMAC Secret Nginx 配置 + wrangler.toml VIP URL 签名验证
R2 Access Key /opt/videoop/.env + /root/.config/rclone/rclone.conf R2 存储读写
Telegram API 凭证 /opt/videoop/.env 视频采集
Workers Admin JWT /opt/videoop/.env Pipeline → Worker API 通信
Cloudflare API Token videoop/CLOUDFLARE_CREDENTIALS.md (源码) wrangler deploy
SSL 证书 /etc/letsencrypt/live/vip.mhana.top/ HTTPS,自动续期

⚠️ 已知限制与注意事项

限制说明应对
单点故障 VIP 服务器宕机时 VIP 线路���可用 用户前端可手动关闭 VIP 线路,回退到普通 CF 线路;普通线路不受影响
磁盘空间有限 4.5TB 总容量,当前视频约 1.5TB 按日增 5-8GB 估算,可用约 1-1.5 年;需要定期监控
CLIP 模型内存 ViT-B-32 加载约需 2GB 内存 32GB 内存足够,但注意不要同时运行太多内存密集任务
签名 URL 有效期 默认 1 小时 用户长时间挂机后 URL 会过期,刷新 feed 即可获取新签名
多 Tab 计时叠加 每个标签页独立计时 这是设计如此,Profile 页面有提示
Telegram Session videoop_session.session 文件需要与旧服务器一致 已随代码一起传输;若出现认证问题,需重新运行 auth_telegram.py