验证 .tar.gz 备份

验证 .tar.gz 备份

编辑3:对于会读到这个问题的人:--verify神秘地失败了“警告:无法寻找:非法寻找”,因此我建议您寻找替代方法来验证您的档案。我原来的问题如下。


除了恢复之外,确保.tar.gz备份完整性的正确方法是什么?我在用着GNU tar

根据手册页tar和我阅读的内容,tar提供了--verify创建存档时的选项以及--diff查找现有存档和文件系统之间差异的选项。

--diff使用 创建存档后立即进行检查是否多余--verify?或者--diff更可靠,因此以前的方法--verify是多余的,除非您希望备份过程快速失败?

我们gzip --test是否也应该调用来验证.gz存档,或者是否已经使用和tar自行执行这样的检查?我想说确实如此。--verify--diff

感谢您的关注。

编辑:正如 Lgeorget 所建议的,我也可以存储存档的哈希值,以便在恢复时检查存档是否已损坏。

编辑2:因此,显然--verify就足够了。也许我可以用来tar --list检查存档是否可读且可提取。我还想知道是否--diff检查文件的内容或仅检查文件的名称(可能还包括属性)。

答案1

是的,验证后的 diff 是多余的,不,没有意义gzip --test,因为 tar 读取存档时要做的第一件事就是解压它,因此任何压缩问题都会导致失败。

答案2

--diff更适合用于备份目的。例如,tar在安排定期备份时检查是否需要再次访问某个目录。

我不知道该--verify选项的效率。如果您对此有疑问,或者希望能够检查tar 稍后的完整性,您可以使用哈希。

例如:

> sha1sum etc.tar.gz 
b30d837c623274908de2ebaceb72b07c54037546  etc.tar.gz

然后将此行存储到一个文件中(我们称之为etc.tar.gz.checksum)。当你想检查完整性时,将此文件移动到所在目录etc.tar.gz并运行:

> sha1sum -c etc.tar.gz.checksum 
etc.tar.gz: OK

sha1sum设有openssl.

相关内容