好的,我帮你把这次微信备份的完整部署经验整合成一份**更新后的文档**,方便后续参考和维护。 --- # PBS 备份服务器 + 微信聊天记录备份部署文档 ## 📋 系统概览 | 项目 | 内容 | | :--- | :--- | | **PBS 服务器** | `pbs01`(虚拟机,Proxmox Backup Server 4.2-1) | | **数据盘** | 100GB(`/dev/sdb1` → `/mnt/backup`) | | **Datastore 名称** | `weixin_backup` | | **备份目标** | PC02 微信聊天记录备份文件夹 | | **网络方案** | Tailscale 内网穿透 | | **客户端** | PC02 WSL2(Ubuntu 24.04)+ PBS Client | --- ## 🖥️ PBS 服务端配置(已完成) ### 磁盘挂载 ```bash # 分区并格式化 sudo fdisk /dev/sdb # 创建分区 /dev/sdb1 sudo mkfs.ext4 /dev/sdb1 # 挂载 sudo mkdir -p /mnt/backup sudo mount /dev/sdb1 /mnt/backup # 自动挂载(/etc/fstab) UUID=你的UUID /mnt/backup ext4 defaults 0 2 ``` ### Datastore 创建 ```bash proxmox-backup-manager datastore create weixin_backup /mnt/backup ``` ### 保留策略(Prune) ```bash proxmox-backup-manager datastore update weixin_backup \ --keep-daily 30 \ --keep-monthly 12 ``` ### API Token 权限设置 ```bash # 为 Token 授予 Datastore 备份权限 proxmox-backup-manager acl update /datastore/weixin_backup root@pam!pc02-weixin --roles DatastoreAdmin ``` > **Token 信息:** > - Token ID:`root@pam!pc02-weixin` > - Secret:`a21e8e89-a18f-4a01-b7f3-7aaa4a0db10e` --- ## 💻 PC02 客户端配置(WSL2 Ubuntu 24.04) ### 安装 PBS 客户端 ```bash # 添加 Proxmox 官方源 wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg echo "deb http://download.proxmox.com/debian/pbs-client bookworm main" | sudo tee /etc/apt/sources.list.d/pbs-client.list sudo apt update sudo apt install proxmox-backup-client -y ``` ### 手动备份命令 ```bash # 设置认证信息(注意用单引号避免 zsh 感叹号报错) export PBS_REPOSITORY='root@pam!pc02-weixin@pbs01:weixin_backup' export PBS_PASSWORD='a21e8e89-a18f-4a01-b7f3-7aaa4a0db10e' # 执行备份(首次全量,后续增量) proxmox-backup-client backup weixin.pxar:/mnt/d/yangxuan/Documents/xwechat_files/Backup/wxid_4931329313415 ``` > ⚠️ **注意:** > - 若 `pbs01` 主机名无法解析,改用 Tailscale IP:`root@pam!pc02-weixin@100.x.x.x:weixin_backup` > - 备份归档名 `weixin.pxar` 可自定义,但一旦确定不要随意更改,否则会丢失增量备份链 ### WSL 路径说明 | Windows 路径 | WSL 路径 | | :--- | :--- | | `D:\yangxuan\Documents\...` | `/mnt/d/yangxuan/Documents/...` | --- ## 🤖 自动化备份脚本 ### 创建脚本 `~/backup-wechat.sh` ```bash #!/bin/bash # 微信聊天记录自动备份脚本 # 配置 PBS_REPO='root@pam!pc02-weixin@pbs01:weixin_backup' PBS_PASS='a21e8e89-a18f-4a01-b7f3-7aaa4a0db10e' BACKUP_PATH='/mnt/d/yangxuan/Documents/xwechat_files/Backup/wxid_4931329313415' LOG_FILE="$HOME/backup-wechat.log" # 检测 PBS 是否在线 if ! ping -c 1 -W 2 pbs01 > /dev/null 2>&1; then echo "[$(date)] PBS 不在线,跳过备份" >> "$LOG_FILE" exit 0 fi # 检测备份目录是否存在 if [ ! -d "$BACKUP_PATH" ]; then echo "[$(date)] 警告:备份目录不存在,跳过" >> "$LOG_FILE" exit 1 fi # 执行备份 export PBS_REPOSITORY="$PBS_REPO" export PBS_PASSWORD="$PBS_PASS" echo "[$(date)] 开始备份微信记录..." >> "$LOG_FILE" proxmox-backup-client backup weixin.pxar:"$BACKUP_PATH" >> "$LOG_FILE" 2>&1 if [ $? -eq 0 ]; then echo "[$(date)] 备份成功 ✅" >> "$LOG_FILE" else echo "[$(date)] 备份失败 ❌" >> "$LOG_FILE" fi ``` ### 赋予执行权限 ```bash chmod +x ~/backup-wechat.sh ``` ### 配置定时任务(cron) 每月 1 号凌晨 2:00 执行: ```bash crontab -e # 添加一行 0 2 1 * * /home/yangxuan/backup-wechat.sh ``` --- ## ✅ 验证与排查 ### 检查备份是否成功 ```bash # 在 PC02 WSL 中 proxmox-backup-client snapshot list # 或在 PBS 服务端 proxmox-backup-manager datastore list proxmox-backup-manager datastore content weixin_backup ``` ### 常见问题排查 | 问题 | 解决方案 | | :--- | :--- | | `zsh: event not found` | 用单引号包裹 `PBS_REPOSITORY` 值 | | `missing permissions 'Datastore.Backup'` | 在 PBS 中授予 Token 相应权限 | | `pbs01` 无法解析 | 改用 Tailscale IP 地址 | | 备份目录不存在 | 确认 WSL 路径写法,如 `/mnt/d/...` | --- ## 📊 当前状态 | 项目 | 状态 | | :--- | :--- | | PBS 服务端 | ✅ 运行正常 | | Datastore `weixin_backup` | ✅ 已创建,98GB 可用 | | API Token `root@pam!pc02-weixin` | ✅ 已授权 | | PC02 WSL 客户端 | ✅ 已安装 | | 首次备份 | ✅ 已完成 | --- ## 🔗 相关命令速查 | 用途 | 命令 | | :--- | :--- | | 查看 PBS 任务 | `proxmox-backup-manager tasks list` | | 查看 Datastore 内容 | `proxmox-backup-manager datastore content weixin_backup` | | 查看备份快照 | `proxmox-backup-client snapshot list` | | 查看磁盘使用 | `df -h /mnt/backup` | | 查看 Tailscale IP | `tailscale ip` | | 手动垃圾回收 | `proxmox-backup-manager garbage-collection start weixin_backup` | --- 文档已更新完毕,后续如有新增备份设备或调整策略,随时补充! 📝