Files
vps-management-bot/memory/2026-02-24.md
2026-03-21 01:10:53 +08:00

267 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2026-02-24
## 决策
- 备份服务器(155.103.67.87)暂停同步到 Emby 主服(155.103.67.95),因为即将迁移到 OVH KS2(145.239.143.92)
- OVH KS2 迁移方案全部动画重新下载OVH 10Gbps 比 rsync 快),不从旧服同步
## OVH KS2 迁移状态
- RAID5 reshape 已完成4盘在线11T 可用
- Docker: emby + qbittorrent + caddy + mysql + embyboss 全部运行
- DNS: media.088520.xyz / qb.088520.xyz → OVH (通过CDN代理)
- Caddy 反代修复: localhost→emby容器名 (502问题)
- Emby 配置从旧服 rsync 完成12个用户全部迁移
- Bot @mangoemby_bot 迁移完成,旧服 embyboss+mysql 已停
- qB 49个种子46个已完成3个0%(啦咘啦哆S02/海底S10/海底S02 可能无种)
- 子代理批量搜索下载了大量动画Bluey/佩奇/汪汪队/海底小纵队/安全警长等)
- 3个死种(0做种)已删除换了替代资源安全警长S02→1080p(26种), 海底S02→FROGWeb 1080p(27种)
- 海底小纵队S10 M-Team只有一个版本且0做种可能需要从旧服rsync
## Gitea README 修复
- ss-rust: 安装链接从 raw.githubusercontent.com 改为 mjjtop.com/ss
- vps-snapshot: 安装链接改为 mjjtop.com/bk
- Gitea服务器(155.103.66.237) SSH key和密码都认证失败用API更新的
## 软路由 OpenClaw 语音识别
- 161.129.35.235:22288 (Kwrt 24.10, N100 8GB) Docker 跑 OpenClaw
- 容器内 pip 装 whisper 失败(PyTorch 915MB 下载超时)
- 已给顶尖两个方案: Groq API(推荐) 或 清华源装本地whisper
- ffmpeg/python3/pip3 已装好,只差 whisper
## 当前动画库清单155.103.67.95,共~304GB
| 动画 | 集数 | 备注 |
|------|------|------|
| Bluey 布鲁伊 | 152集 | 2160p 中配 |
| Peppa Pig 小猪佩奇 | 236集 | 1080p |
| PAW Patrol 汪汪队 | 112集 | S01/S03-S05 1080p + S11 4K |
| Octonauts 海底小纵队 | 282集 | S01-S09 + 中国之旅S01-S02 + 特别篇 |
| Octonauts Above and Beyond | 48集 | |
| Sheriff Labrador 安全警长啦咘啦哆 | 156集 | S01-S03 4K |
| Sheriff Labrador vs Lynnia 啦咘啦哆大战羚羚羊 | 39集 | S01 4K + S02 1080p |
| The Creature Cases 动物神探队 | 59集 | S01-S07 1080p |
| Gigantosaurus 小恐龙大冒险 | 156集 | S01 1080p + S02-S03 4K |
| My Little Pony 小马宝莉 | 143集 | S02 HDR + S04 1080p |
| 疯狂动物城 | 电影 | 4K HDR DV |
## VPS 备份目标变更
- 旧备份机 155.103.67.87 弃用
- 新备份目标: OVH KS2 145.239.143.92:/data/backup/ (11TB RAID5)
- MEMORY.md 已更新
- 注意: OVH 自身备份不能存本机(同一分区),需要反向备份到其他机器
- OVH 只有一个根分区(/)挂载11TB不像旧Emby服有独立数据盘(/data)
- vps-snapshot 在 OVH 上跑会把 /data/qbittorrent 也打包(旧服不会因为/data是独立挂载点
- 需要给 vps-snapshot 加排除规则才能在 OVH 上用
## 小恐龙大冒险补下载
- 子代理漏掉了 Gigantosaurus手动补上
- S01: FROGWeb 1080p 中配中字 21.85GB (id:1049344)
- S02: ZmWeb 4K 中配 10.09GB (id:954702)
- S03: ZmWeb 4K 中配 8.53GB (id:954706)
## Gitea 服务器 SSH
- 155.103.66.237 SSH key 和密码 fJ7#vP9s@tL2qX!d 都认证失败
- 只能通过 Gitea API (admin:Mango2026!) 操作
## 软路由 OpenClaw
- 161.129.35.235:22288 密码: fJ7#vP9s@tL2qX!d
- Docker 容器: openclaw (8h+运行) + miaospeed
- Bot token: 8782003171:AAGlJK1Icrcwm8QR8bScLlUVp1jHoWC8t5c
- 容器内 DNS 需手动设 8.8.8.8 才能联网(软路由透明代理导致)
- 语音识别未完成,等顶尖自己处理
## OVH 缺失动画补下载 (11:00 AM)
顶尖要求重新下载旧服上有但 OVH 缺的动画,从 M-Team 批量搜索+添加到 qB
**动物神探队 The Creature Cases S01-S07** (MWeb 中配中字 +10%上传)
- ids: 975595/975592/975591/975589/975586/1095370/1132811
- 约 48GB
**啦咘啦哆警长大战羚羚羊**
- S01 4K ZmWeb (id:1013442, 4.61GB, 49种)
- S02 1080p ZmWeb (id:1128912, 3.27GB, 19种)
**疯狂动物城 Zootopia**
- 第1部 4K HDR10 DBTV (id:1130201, 9.89GB, 33种)
- 第2部 4K HDR10+ CHDWEB 中配国粤英 (id:1128584, 20.09GB, 411种)
**海底小纵队中国之旅**
- S01 (id:1032355) + S02 (id:1018375)
**小马宝莉 My Little Pony S01-S09** (UBWEB H.265 HDR10 中配中字)
- ids: 957585/957733/957731/957729/957726/957673/957657/957628/957607
- 约 50GB体积小画质好
总计新增 22 个种子,预估 ~140GB
全部已成功添加到 OVH qB (145.239.143.92:8080)
## VPS 备份约定 [重要]
顶尖确认:以后他发 IP 过来,就按标准流程部署 vps-snapshot 备份到 OVH
1. 安装: `bash <(curl -sL mjjtop.com/bk)`
2. 配置: 远程→145.239.143.92:/data/backup/{机器名}/, LOCAL_KEEP=1, REMOTE_KEEP_DAYS=30, TG通知
3. Cron: `0 3 * * *`
4. 手动触发一次验证
不需要再问,直接执行。
## Stock Monitor 优化 (下午)
- HDY(38.76.204.161) `/opt/tg-stock-monitor/bot.py` 全面优化
- 全部商品改用 curl去掉 Playwright 依赖),一轮检查从 ~3分钟→<1秒
- 腾讯云 7 商品修复分类页去重只请求1次disabled button 检测缺货
- 同 URL 商品去重,并发 asyncio.gather
- Misaka 4个商品 curl 拿不到SPA暂时跳过
- RFCHOST 补货当天就检测到了
## OC Monitor 面板修复 (下午)
- https://openclaw.mjjvps.com (155.103.66.237:3800, Nginx反代)
- 问题1: CDN(Photon-Edge) 回源走 HTTPS 443源站没有 openclaw 的 443 server block → 404
- 修复: 加了 443 server block借用 git.088520.xyz 证书
- 问题2: CDN 强制 HTTP→HTTPScertbot HTTP-01 验证失败
- 修复: 顶尖关掉 Cloudflare 代理(DNS Only)certbot 签了独立证书(到期 5/25)
- 清理: 删除 git.088520.xyz 旧 Nginx 配置(已弃用)
- 清理: 删除多个 null/重复节点
## N100 OC Monitor Agent 重写 (下午)
- 旧 bash agent 依赖 python3Docker 容器重建后 python3 丢失
- 用 Node.js 重写 agent: `/mnt/data_sda1/openclaw/config/workspace/scripts/oc-monitor-agent.js`
- 持久化在宿主机挂载目录,容器重建不丢
- 修复 providers 双重 JSON 编码问题(260→2)
- start 脚本改用 PID 文件防重复启动
- cron 路径修正: `/root/.openclaw/workspace/scripts/start-oc-monitor.sh`
## N100 网络问题
- Docker 容器连不上 Telegram API被墙
- 宿主机有透明代理能连,但容器 DNS 被 Docker 覆盖成 8.8.8.8 绕过了代理
- host 网络模式下 daemon.json dns 配置不生效
- 顶尖让另一个 agent 处理代理问题
## OC Monitor 服务端修复 (下午 ~16:00)
- 根本原因: 服务端 `JSON.stringify(b.providers)` 对已经是字符串的 providers 双重编码
- 修复: `/app/server/index.js` 改为 `typeof b.providers==="string"?b.providers:JSON.stringify(b.providers||[])`
- 修复后所有节点 providers 数据正常,前端不再崩溃
## N100 Agent Node.js 版完善 (下午 ~16:10)
- 加入供应商延迟探测每60秒后台异步探测不阻塞心跳
- 系统指标修复: CPU 用 /proc/stat 差值计算, mem 用 /proc/meminfo, disk 用 df
- 探测结果: newcli ~8362ms(国内到海外正常), terminalpub TLS断开(不稳定)
- 面板正常显示 N100 所有信息
## OVH 下载状态 (16:20)
- 74个种子全部完成0个下载中
- 磁盘: 458GB / 11TB (5%)
- 待做: 新内容 symlink、小马宝莉选版本、Emby 元数据刮削
## Emby Symlink + 媒体库 (16:30-17:00)
- 创建 symlink: 11个动画系列 91个链接到 `/data/media/动画/`
- 新增目录: My Little Pony(2010), Zootopia(2016), Sheriff Labrador vs Lynnia(2024), The Creature Cases(2022), Octonauts China(2023)
- 补充已有目录缺少的季: Peppa Pig S1-S9+S11, PAW Patrol S1-S11, Octonauts S1-S10+特别篇+电影, Detetive Labrador S1-S3
- 电影: 疯狂动物城1+2 链接到 `/data/media/电影/`
- Emby 库扫描完成: 10个系列 + 2部电影
## 中文元数据写入 (16:40-17:00)
- 系列级别: 10个系列全部写入中文名+简介+TMDB ID
- 电影: 疯狂动物城1+2 写入中文简介+TMDB ID
- 集级别: 子代理用 tmdb_emby_sync.py 从 TMDB 网页拉取
- 小猪佩奇 236集全部补完
- 布鲁伊 20集补完
- 汪汪队 11集补完
- 安全警长 17集补完
- 总计 770→464 缺简介TMDB上国产动画集级别数据缺失
## Emby 播放修复 (17:10-17:40)
- 问题1: 旧服迁移的 library.db 路径不匹配 OVH 实际目录 → 播放 404
- 问题2: Emby 容器缺 `/data/qbittorrent/downloads` 挂载 → symlink 目标不可达
- 问题3: `/data/media:/data/media``/data/media:/media` 双挂载 → 2814集重复(应1383)
- 修复: 删 library.db 重建,去掉重复挂载,只保留 `/data/media:/media` + `/data/qbittorrent/downloads:ro`
- docker-compose.yml emby volumes 最终:
- /data/emby/config:/config
- /data/media:/media
- /data/qbittorrent/downloads:/data/qbittorrent/downloads:ro
- 重新添加动画库(/media/动画) + 电影库(/media/电影)
- 重新写入所有中文元数据(系列+电影)
- 播放流验证: HTTP 206 正常
- ⚠️ 扫描后需要重新跑 tmdb_emby_sync.pySeries ID 变了,已更新脚本)
- 脚本路径: scripts/tmdb_emby_sync.pyID已更新为新library的ID
## Emby 重复集数修复 + 播放修复 (17:00-18:00)
- 根因: 每个系列目录下有两套 symlink (Season格式 + 中文原始名格式) 指向同一下载目录
- 删除 38 个重复 symlink只保留 Season* 格式
- 去掉 docker-compose 重复挂载 `/data/media:/data/media`
- 最终 volumes: /data/emby/config:/config + /data/media:/media + /data/qbittorrent/downloads:ro
- 删 library.db 重建3次最终: 11系列 1774集 2电影
- 1774集 > 旧服1383集因为 OVH 种子版本文件更多(正确)
- 播放流验证 HTTP 206 正常
- Emby Series ID 变更: 布鲁伊=1548, 小恐龙=1547, 其余11-19
## 中文元数据重写 (18:00-18:30)
- 系列级别: 11个全部写入中文名+简介+TMDB ID (204)
- 电影: 疯狂动物城1+2 写入 (204)
- 集级别 tmdb_emby_sync.py 重跑完成: 869集更新
- 最终: 1025/1774 (58%) 有中文简介
## 封面上传 (18:35-18:50)
- Emby 自动刷新无法拉取 TMDB 图片(容器网络问题)
- 手动: web_fetch 抓 TMDB 页面提取 poster path → 下载 → base64 上传 Emby API
- 11个系列 + 2部电影全部上传成功
- ⚠️ TMDB 253041 已被改为"我在80年代给龙凤胎当继母"(真人剧),啦咘啦哆大战羚羚羊封面用视频截图替代
- 小马宝莉 TMDB ID 20085 不对,用 33765 的封面
## 集缩略图生成 (18:50-19:40)
- OVH 安装 ffmpeg脚本 /tmp/gen_thumbs.sh
- 从视频 40% 位置截取 480px 宽 jpgbase64 上传 Emby API
- 第一轮: 1774集完成~720张后中断
- 第二轮: 剩余1055集完成1016张19失败3跳过
- 最终: ~82% 集有缩略图
## TMDB ID 被篡改问题 (19:00-21:00)
- TMDB TV 269149 被改为 "Drinking with Joe and Maya" → 疯狂动物城系列封面错误
- TMDB TV 82027 被改为 "车达莱夫人的爱情"(韩剧) → 小恐龙大冒险封面错误
- TMDB TV 253041 被改为 "我在80年代给龙凤胎当继母" → 啦咘啦哆大战羚羚羊封面错误
- 修正: 小恐龙大冒险正确TMDB ID = 88910, 小马宝莉正确ID = 33765
- 疯狂动物城系列(ID 19)用电影版海报(movie/269149), 啦咘啦哆大战羚羚羊用视频截图
## 缩略图错位修复 (20:00-22:00)
- 第一轮脚本 gen_thumbs.sh 有 bug: episodes 列表顺序和路径对不上,导致截图张冠李戴
- 全量重新生成 regen_all_thumbs.sh: 用精确 ID→路径映射1695/1774 成功
- 补缺脚本 fix_thumbs3.py (Python, 带3次重试): 554/554 全部成功, 0失败
- 关键: 之前 bash 脚本上传偶尔 HTTP 500, Python 脚本加重试后 0 失败
- 最终: 1774/1774 集全部有缩略图
- 每次上传完缩略图后必须重新上传系列封面(缩略图和封面共用 Primary 字段)
## Emby 图片上传要点 (教训)
- Emby API 上传图片: POST /Items/{id}/Images/Primary, Content-Type: image/jpeg, body=base64
- 直接 POST 原始二进制会 500, 必须 base64 编码
- 集缩略图和系列封面都用 Primary 字段, 上传缩略图会覆盖系列封面
- 上传完缩略图后必须重新上传系列封面
- Emby App 有图片缓存, 更新后需要清缓存才能看到新图
## DD 重装脚本修复
- 移除 `set -e`,修复 `bash <(curl ...)` 下 read 遇 EOF 退出的问题
- Gitea + GitHub 已推送
## OC3→netcup 迁移 (深夜)
- OC3(173.249.215.67) OpenClaw 已停止+删除
- netcup(159.195.41.188) Debian 13, 8GB RAM, 500G 磁盘
- 装了 Node.js 22 + git + OpenClaw 2026.2.23 + ffmpeg
- 从 OC3 打包 .openclaw/ 迁移到 netcup (13MB)
- 删除 whatsapp 插件,重启正常
- OC Monitor: 删除 Chicago 节点,添加 netcup 节点
- OC3 的 oc-monitor-agent 已停止删除
- 问题: workspace 记忆还是 OC3 旧数据,需要从 Mac mini 同步
- 同步了 MEMORY.md + memory/ + USER.md + IDENTITY.md + SOUL.md 等
- 删除 BOOTSTRAP.md 避免重走初始化
- 删除旧 memory/main.sqlite 索引让它重建
- 设置 Telegram 中文菜单
- 踩坑: heartbeat 不是 openclaw.json 合法 key导致配置校验失败崩溃循环
- 修复: 删掉 heartbeat key心跳通过 HEARTBEAT.md 自动工作
- 修复 workspace 路径: /data/openclaw-workspace → /root/.openclaw/workspace
- 语音转文字: 改成 audio.enabled:true 让内置自动检测(旧 Groq key 已失效)
## OC3(173.249.215.67) 清理
- 删除旧脚本: kejilion.sh/panel_install.sh/agent.sh/system_snapshot.sh 等
- 清理 npm 缓存,磁盘从 68%→65%
- Docker 容器(Gost+Sub-Store)保留不动
## 待完成
- 确认播放正常后停旧服 emby+qB
- 停旧服 155.103.67.95 的 emby+qB 容器
- netcup 语音转文字验证Groq key 过期,需新 key 或其他方案)
- 部署 Jellyseerr/求片系统 on OVH