如何使用口是心非验证 deja-dup 备份

如何使用口是心非验证 deja-dup 备份

今天晚上,由于某种内核恐慌,我不得不硬关闭我的计算机。

当我重新启动时,我注意到我的文件~/.ssh/id_rsa已被替换为空文件。

重新启动到 USB 并fsck在我的主分区上运行报告文件系统状况良好。

仅此一点并不是问题。我可以访问原始密钥。但是,我担心其他文件可能也被类似地截断。

我的最后一次备份deja-dup是三天前使用的,因此我可以执行完整回滚,但我宁愿只询问deja-dup自那时以来哪些文件发生了更改并查找“可疑”文件。

这似乎正是的目的duplicity verify,因此在浏览了一些手册页之后,我尝试:

duplicity verify --verbosity 4 --no-encryption file:///path/to/backup/ /home/${USER}

它在没有报告更改的情况下运行完成。至少,我预计我的文件~/.ssh/id_rsa会被检测到,但我添加、删除和更改了其他文件。

我的下一次尝试是相同的,但带有标志--compare-data

duplicity verify --verbosity 4 --no-encryption file:///path/to/backup/ /home/${USER}

这似乎报告我的主文件夹中的每个文件都是新的,开头如下:

Local and Remote metadata are synchronized, no sync needed.
Last full backup date: Fri Dec 15 11:43:22 2017
Difference found: File . has permissions 1000:1001 700, expected 0:0 555
Difference found: New file .AndroidStudio2.3
Difference found: New file .AndroidStudio2.3/config
Difference found: New file .AndroidStudio2.3/config/inspection
Difference found: New file .AndroidStudio2.3/config/inspection/Default.xml

我已经安装 Android Studio 几个月了,所以它肯定在我三天前的备份中,并且ls报告Default.xml仍然存在并且长度为 108 字节。

作为最后的努力,我将目标目录更改为/,因为使用时这似乎是根目录duplicity list-current-files,这需要添加一些正则表达式来限制口是心非,只考虑我的主文件夹:

duplicity verify --verbosity 4 --compare-data --no-encryption --include-regexp ".*home/${USER}/\.ssh.*" --exclude-regexp ".*" file:///path/to/backup/ /

这产生了有趣的效果,报告我的主文件夹不存在:

Local and Remote metadata are synchronized, no sync needed.
Last full backup date: Fri Dec 15 11:43:22 2017
Difference found: File home is missing
Difference found: File home/${USER} is missing
Difference found: File home/${USER}/.AndroidStudio2.3 is missing
Difference found: File home/${USER}/.AndroidStudio2.3/config is missing
Difference found: File home/${USER}/.AndroidStudio2.3/config/inspection is missing
Difference found: File home/${USER}/.AndroidStudio2.3/config/inspection/Default.xml is missing

在这一点上,我当然只是误解了如何使用 duplicity。我如何验证生成的备份deja-dup

duplicity list-current-files有输出开始:

Local and Remote metadata are synchronized, no sync needed.
Last full backup date: Fri Dec 15 11:43:22 2017
Tue Feb  6 19:36:56 2018 .
Wed Aug  2 17:32:09 2017 home
Tue Feb  6 00:38:20 2018 home/${USER}
Sat May 13 18:49:24 2017 home/${USER}/.AndroidStudio2.3
Thu Jun 22 19:42:14 2017 home/${USER}/.AndroidStudio2.3/config
Sat May 13 18:57:45 2017 home/${USER}/.AndroidStudio2.3/config/inspection
Sat May 13 18:57:45 2017 home/${USER}/.AndroidStudio2.3/config/inspection/Default.xml

答案1

@ede 和我同时找到了相同的解决方案,就我而言在口是心非的邮件列表上

口是心非验证需要该--compare-data标志才能验证磁盘上的文件,并且需要该--file-to-restore标志才能查看正确的目录,因此解决我的问题的最终命令是:

duplicity verify --verbosity 4 --compare-data --file-to-restore=/home/${USER} --no-encryption file:///path/to/backup/ /home/${USER}/

不幸的是,这仍然没有检测到~/.ssh/id_rsa损坏。同时,尝试从备份恢复时恢复了一个 0 字节的文件...很可能几周前我的文件发生了一些事情。

相关内容