![验证 .tar.gz 备份](https://linux22.com/image/44932/%E9%AA%8C%E8%AF%81%20.tar.gz%20%E5%A4%87%E4%BB%BD.png)
编辑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
.