操作前完成2项确认,避免操作失误:1. 复制原备份日志目录到临时文件夹(Windows默认路径:C:\ProgramData\Wondershare\DocT\BackupLogs;Linux默认路径:/var/lib/seafile/seafile-data/logs),命名为backup_logs_backup;2. 确认档案软件版本为v2.1及以上,旧版本不支持自动索引解析,需先更新(Windows更新地址:https://www.wondershare.com/docs/updater;Linux更新命令:`sudo apt update && sudo apt install seafile-server`)。
打开档案软件主界面,点击左侧导航栏的「日志中心」模块;勾选上方「备份任务」单选框,取消其他类型日志勾选;在时间选择器中输入断裂的起止时间(如2024-05-10 14:00:00至2024-05-10 16:00:00);点击「导出筛选结果」,保存为origin_logs.csv,标记该时间段内日志为空的条目。
进入临时备份目录的对应备份包文件夹,找到断裂时间段的备份包(如20240510_1400_backup.7z);打开系统命令行工具(Windows:Win+R输入cmd;Linux:Ctrl+Alt+T),执行软件自带的索引解析命令: ``` archivematicaClient --parse-metadata backup_logs_backup/20240510_1400_backup.7z -o missing_logs.txt ``` 执行完成后,打开missing_logs.txt,确认包含断裂时间段的所有日志条目(若为空则备份包损坏)。
执行日志合并命令,将缺失条目写入原日志对应位置: ``` doclogmerge --merge missing_logs.txt backup_logs_backup/20240510_1400_backup.7z -o repaired_20240510.log ``` 该命令会自动匹配日志时间戳,不会修改原有日志内容,仅插入缺失条目。

用SHA256校验修复后的日志与备份索引的一致性,命令: ``` sha256sum repaired_20240510.log ``` 打开origin_logs.csv,找到对应备份包的「log_sha256」字段,比对两个值:完全一致则修复成功;若不一致,重新执行步骤2-3。
为避免后续日志缺失,修改软件配置文件:Windows用记事本打开C:\ProgramData\Wondershare\DocT\config.ini;Linux用vim打开/etc/seafile/seafile.conf;在文件末尾添加: ``` [log_config] auto_completion = true missing_check_interval = 3600 ``` 保存后重启服务:Windows执行`net stop doctservice && net start doctservice`;Linux执行`systemctl restart seafile`。
执行解压命令重新生成索引: ``` 7z x backup_logs_backup/20240510_1400_backup.7z -o unpacked_backup archivematicaClient --rebuild-index unpacked_backup/ -o new_index.idx ``` 用new_index.idx替换原索引文件,重新执行步骤2-3。
打开修复后的日志,用文本编辑器「替换」功能,将缺失条目的时间戳调整为相邻日志的时间规则;调整完成后重新执行步骤4的校验操作。