2.7 KiB
替换 desktop_user 和台式机 IP
ssh-copy-id -i C:\Users\wddsh.ssh\id_ed25519.pub wdd@192.168.1.194
或手动追加(ssh-copy-id 若不可用)
cat C:\Users\wddsh.ssh\id_ed25519.pub | ssh wdd@192.168.1.194
"mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
验证免密登录
ssh -i C:\Users\wddsh.ssh\id_ed25519 wdd@192.168.1.194 "echo SSH OK"
cat >> C:\Users\wddsh.ssh\config << 'EOF' Host wdd-pink-station HostName 192.168.1.194 User wdd IdentityFile C:\Users\wddsh.ssh\id_ed25519 ServerAliveInterval 60 ServerAliveCountMax 3 EOF chmod 600 ~/.ssh/config
验证简写连接
ssh wdd-pink-station "echo Connected"
#!/usr/bin/env bash set -euo pipefail
── 配置区 ────────────────────────────────────────────────
SRC="/c/Users/wddsh/Documents/xwechat_files" REMOTE_HOST="wdd-pink-station" # 对应 ~/.ssh/config 中的 Host REMOTE_DST="/c/Users/wdd/wechat_files/xwechat_files" LOG_DIR="/c/Users/wddsh/wechat_backup/logs" LOG_FILE="${LOG_DIR}/wechat_sync_$(date +%Y%m%d).log"
─────────────────────────────────────────────────────────
mkdir -p "$LOG_DIR"
log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*" | tee -a "$LOG_FILE" }
log "======== 微信数据同步开始 ========"
── 检测微信是否运行 ──────────────────────────────────────
if tasklist.exe 2>/dev/null | grep -qi "Weixin.exe"; then log "警告:微信正在运行,跳过 db_storage(数据库锁定中)" EXCLUDE_DB="--exclude=db_storage/" else log "微信未运行,全量同步数据库" EXCLUDE_DB="" fi
── rsync 同步 ────────────────────────────────────────────
rsync -avz
--progress
--partial
--delete
--exclude="temp/"
--exclude="cache/"
--exclude="apm_record/"
--exclude="*.lock"
${EXCLUDE_DB}
-e "ssh -F ~/.ssh/config"
"${SRC}/"
"${REMOTE_HOST}:${REMOTE_DST}/"
2>&1 | tee -a "$LOG_FILE"
EXIT_CODE=${PIPESTATUS[0]} if [ $EXIT_CODE -eq 0 ]; then log "同步成功完成 ✓" else log "同步失败,rsync 退出码: $EXIT_CODE" fi
── 清理 30 天前日志 ──────────────────────────────────────
find "$LOG_DIR" -name "wechat_sync_*.log" -mtime +30 -delete 2>/dev/null
log "======== 同步结束 ========"