133 lines
7.5 KiB
Markdown
133 lines
7.5 KiB
Markdown
# MEMORY.md —— PBS 备份助手长期记忆
|
||
|
||
## 🔌 连接信息(核心)
|
||
- **主机**:pbs01(Proxmox Backup Server)
|
||
- **地址**:`100.115.195.195`(Tailscale 内网)
|
||
- **SSH 登录**:`ssh root@100.115.195.195`(已配置免密,使用 `~/.ssh/id_ed25519`)
|
||
- **系统**:Debian 系,内核 `7.0.0-3-pve`(Proxmox VE 内核)
|
||
- **连接状态**:2026-08-21 配置免密登录成功,已验证可正常连接
|
||
|
||
## 🗄️ 数据存储(datastore)
|
||
|
||
### 1. `library`(多设备备份)
|
||
- **路径**:`/mnt/library`
|
||
- **设备**:`/dev/sdc1`(984G 总量)
|
||
- **用途**:VPS(vps01)、PC02(library照片)、BK03(bk03) 等设备的目录备份
|
||
- **GC 计划**:daily
|
||
- **API Tokens**:
|
||
- `backup@pbs!vps01_opt` → VPS OPT 备份
|
||
- `backup@pbs!pc02_library` → PC02 library 照片备份
|
||
- `backup@pbs!bk03` → BK03 OPT 备份
|
||
- **状态**:已用 277G(30%),可用 657G
|
||
|
||
### 2. `weixin_backup`(微信聊天记录)
|
||
- **路径**:`/mnt/backup`
|
||
- **设备**:`/dev/sdb1`(98G 总量)
|
||
- **用途**:PC02 微信聊天记录备份
|
||
- **保留策略**:keep-daily 30, keep-monthly 12
|
||
- **API Token**:`backup@pbs!pc02_weixin`(唯一有效;旧 `root@pam!pc02-weixin` token 已失效)
|
||
- **备份源**:`/mnt/d/yangxuan/Documents/xwechat_files/Backup/wxid_4931329313415`(WSL2 路径,源存在)
|
||
- **自动化**:pbs01 开机 150s 后经 `auto-sync-pc02.sh` 触发(非 PC02 cron)
|
||
- **状态**:已用 9.8G(11%),可用 84G
|
||
|
||
## 📅 定时备份任务(pbs01 开机自动同步)
|
||
- **bk03**:开机后 90s → `bk03-autosync.timer`
|
||
- **vps01**:开机后 120s → `vps01-autosync.timer`
|
||
- **PC02 微信+library**:开机后 150s → `pc02-autosync.timer`
|
||
- **library GC**:daily(自动)
|
||
|
||
## 🖥️ 备份客户端清单
|
||
| 客户端 | 备份内容 | Datastore | 源路径 | 通道 |
|
||
|--------|---------|-----------|------|------|
|
||
| VPS (vps01) | /opt | library | - | tailscale |
|
||
| PC02 (library照片) | /mnt/e/library/library | library | - | **LAN 192.168.3.11** |
|
||
| BK03 | /opt | library | - | tailscale |
|
||
| PC02 (微信) | 微信记录 | weixin_backup | WSL2 /mnt/d路径 | **LAN 192.168.3.11** |
|
||
|
||
## 📝 运行模式
|
||
- **低功耗策略**:pbs01 每月开机一次
|
||
- **开机后检测**:检查各备份主机(pc02 等)是否在线(Tailscale),在线则同步
|
||
|
||
## 🤖 BK03 自动同步(已完成 2026-08-21)
|
||
|
||
### 连接信息
|
||
- **bk03**:主机名 `xuan-aq`,Tailscale `100.115.195.193`,SSH 用户 `yangxuan`
|
||
- **认证**:pbs01 专属密钥 `~/.ssh/id_ed25519_pbs01_bk03` → bk03 authorized_keys(免密)
|
||
- **PBS token**:`backup@pbs!bk03`(/datastore Admin),secret 存于 bk03 `~/.config/proxmox-backup/bk03.pass`(权限 600),**勿泄露**
|
||
|
||
### systemd 自动同步(pbs01 上)
|
||
- **脚本**:`/root/scripts/auto-sync-bk03.sh`
|
||
- **service**:`bk03-autosync.service`(oneshot)
|
||
- **timer**:`bk03-autosync.timer`(开机后 90 秒触发)
|
||
- **日志**:`/var/log/bk03-autosync.log`
|
||
- **流程**:开机→90s→检测 bk03 在线(ping 193)→在线则免密触发 `proxmox-backup-client backup bk03_opt.pxar:/opt --backup-id xuan-aq`
|
||
- **已验证**:端到端备份成功(增量复用 100%)
|
||
|
||
## 🤖 VPS01 自动同步(已完成 2026-08-21)
|
||
|
||
### 连接信息
|
||
- **vps01**:主机名 `xuan-vps`,Tailscale `100.115.195.20`,SSH 用户 `root`(可直接登录,无需 su)
|
||
- **认证**:pbs01 专属密钥 `~/.ssh/id_ed25519_pbs01_vps01` → vps01 authorized_keys(免密)
|
||
- **PBS token**:`backup@pbs!vps01_opt`(/datastore Admin),secret 存于 vps01 `~/.config/proxmox-backup/vps01.pass`(权限 600),**勿泄露**
|
||
- **注意**:vps01 authorized_keys 曾因原有粘连行损坏,已拆分修复,原条目全保留
|
||
|
||
### systemd 自动同步(pbs01 上)
|
||
- **脚本**:`/root/scripts/auto-sync-vps01.sh`
|
||
- **service**:`vps01-autosync.service`(oneshot)
|
||
- **timer**:`vps01-autosync.timer`(开机后 120 秒触发)
|
||
- **日志**:`/var/log/vps01-autosync.log`
|
||
- **流程**:开机→120s→检测 vps01 在线(ping 20)→在线则免密触发 `proxmox-backup-client backup vps_opt.pxar:/opt --backup-id xuan-vps`
|
||
- **已验证**:端到端备份成功(增量复用 98.3%),耗时约7分钟
|
||
- **注意**:vps01 /opt 含 navidrome 数据库,备份时 db-wal 文件增长会截断(正常现象)
|
||
|
||
### 时区说明
|
||
- PBS 快照时间为 **RFC3339 + UTC**(尾部 Z),如 `2026-08-21T07:59:08Z`,**无法改为本地时区**(文档依据 terminology.html)
|
||
- 本地读取需 +8h 转换(Asia/Shanghai)
|
||
|
||
## 🤖 PC02 自动同步(2026-09-02 配置并验证成功)
|
||
|
||
### 连接信息
|
||
- **pc02**:主机名 `xuan-main`,Windows+WSL2
|
||
- **⚠️ IP 差异确认**:`100.115.195.189`=Windows宿主机(pc02),其内部 WSL 的 tailscale 身份是 `100.115.195.191`(wsl02)。proxmox-backup-client 在 WSL 里跑,出口 IP 是 191。SSH 到 189:2222 会转发进该 WSL
|
||
- **SSH**:端口 **2222**,用户 `yangxuan`,密钥 `id_ed25519_pbs01_pc02`(免密)
|
||
- **备份源在 WSL2 的 /mnt/d、/mnt/e(Windows NTFS 9P 挂载)**
|
||
|
||
### ⚠️ 通道经验(重要)
|
||
- **同一局域网的主机(PC02)备份必须走局域网地址 `192.168.3.11`**:tailscale 通道遇大备份会在 `POST /dynamic_chunk` 后卡死 17-20 分钟 → `Error: timed out`
|
||
- 改 `192.168.3.11` 后:微信备份 91 秒成功、library 备份(280G) 69 分钟成功
|
||
- 独立 tailscale 主机(vps01/bk03)走 tailscale 正常不受影响
|
||
- 前提:PC02 与 pbs01 同 LAN(1ms)。若 pbs01 换网络环境该地址不可达,需回退 tailscale
|
||
|
||
### 双备份配置(pbs01 触发, repository 均用 LAN 192.168.3.11)
|
||
| 备份 | token | 源 | datastore | archive | 验证 |
|
||
|------|-------|-----|------|------|------|
|
||
| 微信 | `backup@pbs!pc02_weixin` | /mnt/d/.../wxid_4931329313415 | weixin_backup | wexin.pxar | ✅91s复用95.5% |
|
||
| library照片 | `backup@pbs!pc02_library` | /mnt/e/library/library | library | library.pxar | ✅69min复用98.3% |
|
||
|
||
- secret 存 PC02:`~/.config/proxmox-backup/pc02_weixin.pass`、`pc02_library.pass`(600,勿泄露)
|
||
- 有效 token 是 `backup@pbs!pc02_weixin`;archive 名用 `wexin.pxar`(非 weixin.pxar)
|
||
|
||
### systemd 自动同步(pbs01 上)
|
||
- **脚本**:`/root/scripts/auto-sync-pc02.sh`(先微信后 library 串行双备份)
|
||
- **service**:`pc02-autosync.service`(oneshot,TimeoutStartSec=43200 即 12h)
|
||
- **timer**:`pc02-autosync.timer`(开机后 150 秒触发)
|
||
- **日志**:`/var/log/pc02-autosync.log`
|
||
- **流程**:开机→150s→检测 PC02 在线(ping 189)→在线则免密 SSH(2222) 串行:微信→library照片
|
||
|
||
### 备份耗时痛点(正常)
|
||
- 微信/library 源在 /mnt/d,/mnt/e(Windows 9P 跨盘),增量校验文件+全目录扫描慢,CPU 低、进度慢、uploaded 0B 持续可能属正常
|
||
- library 照片源 280G:全量扫描约 69 分钟(增量实际上传 4.7G)
|
||
- bk03 今日离线自动跳过未备份(上次成功停 8/21);下一次自动触发会在 bk03 在线时补上
|
||
|
||
|
||
## 🔧 常见操作规范
|
||
- 所有读写操作通过 `ssh root@100.115.195.195 '<命令>'` 执行
|
||
- 只读命令直接执行;写/删/改命令必须先请示杨轩
|
||
- SSH 密钥内容不读取、不泄露
|
||
- **敏感信息保护**:API Token 密码、Secret 等不写入日志或聊天
|
||
|
||
## ⚠️ 注意事项
|
||
- 备份数据删除操作不可逆,务必谨慎
|
||
- 涉及回收站清空、数据存储格式化等高风险操作一律先请示
|
||
- **文档依据**:任何写/删/改操作前必须查阅 PBS 官方文档(https://100.115.195.195:8007/docs/),说明依据并获确认
|