项目/工具
工具 · 运行中 · AI 自动收录

朋友圈一键同步故障修复

朋友圈一键同步故障修复

修复朋友圈一键同步因 NAS 映射盘丢失、SSH 挂起和旧数据库快照导致的同步失败。

✦ 修复 H: 丢失、SSH 挂起和旧库快照问题,朋友圈同步恢复并验证通过。
约 3 分钟阅读
朋友圈同步PowerShellNASMemos故障修复计划任务
← 返回列表

本项目记录并修复“朋友圈一键同步”链路故障。同步脚本运行在 .155 Windows 主机,负责解密微信数据库、导出朋友圈、导入 Memos 并同步到网站;NAS 通过 H: 映射盘提供微信数据快照,.223 博客后台提供导入与状态接口。

故障直接原因是 .155 重启后 H: 丢失,刷新脚本第一步找不到微信数据库路径而失败,且输出被 Out-Null 吞掉,只留下退出码 1。排查中还发现非交互计划任务或多层管道下,通过 ssh 调用 NAS 导入脚本会偶发挂起,导致整条同步卡死。进一步追查发现,解密脚本一直读取 NAS 上的旧微信数据快照,而微信实际数据已写到本地目录,导致新朋友圈不同步。

修复包括自动挂载 H:、失败时打印诊断、改走博客 API 导入与状态核对、自动选择最新 sns.db,并统一 UTF-8 输出。现状为手动一键同步、单独刷新和计划任务 MomentsSync 均验证成功,Memos 条数与网站同步正常,相关日志可读。

功能

  • 自动检测并挂载 NAS 的 H: 映射盘,挂载失败明确报错
  • 解密失败时输出最后 30 行日志,避免静默失败
  • 导入 Memos 与状态核对改走博客 API,不再从 .155 通过 ssh 调用 NAS
  • 自动在候选目录中选择最新 sns.db,优先本地微信目录,H: 快照兜底
  • 计划任务改用 Start-Process -Wait 与文件重定向,避免嵌套输出捕获卡死
  • 桌面一键同步、手动刷新和计划任务三种入口均验证通过

技术栈

PowerShellWindows 计划任务SMB 映射盘SSHPythonMemos博客 APIsudoers

使用 / 部署教程

1. 使用推荐入口

优先运行桌面或计划任务中的“朋友圈一键同步”。该入口会调用一键同步脚本,完成刷新、导入与状态核对。

2. 手动一键同步

如需手动执行,在 .155 上运行:

powershell -NoProfile -ExecutionPolicy Bypass -File C:\Users\Administrator\moments-export\sync_all.ps1

3. 单独刷新朋友圈

只刷新朋友圈时可运行以下命令,脚本会自动挂载 H::

powershell -NoProfile -ExecutionPolicy Bypass -File C:\Users\Administrator\moments-export\refresh_moments.ps1 -NewOnly

4. 验证计划任务

检查计划任务 MomentsSync 是否返回 EXIT=0,并确认 5 个步骤全部完成。手动直接刷新时,5 步应全部显示 ✔。

5. 查看日志与状态

日志位于: C:\Users\Administrator\moments-export\logs\sync-*.log 与 sync-all-*.log,正常中文可读。状态可通过博客 API 核对 Memos 条数、资源数和最新动态时间。

6. 回滚方法

.155 回滚时,用同目录 *.bak-20261029-apifix 覆盖回 refresh_moments.ps1 和 nightly_sync.ps1。.223 回滚时,恢复 /root/app.py.bak-memosapi-* 后执行 systemctl restart blog-admin,并删除 /etc/sudoers.d/blog-moments 与两个 helper。注意旧版仍存在本次修复的两个问题。

常见问题

故障现象是什么?

手动或计划任务同步失败,控制台只显示退出码 1;排查发现 H: 映射盘丢失,且 ssh 调用 NAS 导入脚本偶发挂起。

新朋友圈为什么不同步?

解密脚本读取的是 NAS 旧微信数据快照,而微信实际数据已写到本地目录;修复后自动选择最新 sns.db。

如何手动同步?

运行桌面“朋友圈一键同步”或 sync_all.ps1;也可单独运行 refresh_moments.ps1 -NewOnly。

如何确认修复成功?

计划任务 MomentsSync 返回 EXIT=0,五步完成;日志中文可读,博客 API 状态与网站朋友圈页同步正常。

注意

  • 回滚 .155 旧版时注意:旧版仍存在 H: 丢失静默失败和 SSH 偶发挂起两个问题。
  • .223 回滚需恢复 /root/app.py.bak-memosapi-*,重启 blog-admin,并删除 /etc/sudoers.d/blog-moments 与两个 helper。
  • 日志正常中文可读;桌面 bat 已改 UTF-8 + chcp 65001,原文件备份为 .bak-20261029-utf8。

评论

加载中…