检查 .tar.gz 备份的完整性

检查 .tar.gz 备份的完整性

如果您备份系统并创建一个包含数千个文件和目录的 .tar.gz,如何轻松检查其完整性?(即无需解压缩)。

保留备份是件好事,但更好的做法是确保备份在需要时能够发挥作用……我想知道一种简单的方法来做到这一点。

答案1

除了 Ignacio Vazquez-Abrams 建议的测试之外,您可能还想为您的 tarball 创建单独的校验和文件。虽然它不会捕获在最初创建时损坏的 tarball,但它可以让您稍后验证文件是否仍处于原始状态,并且它们没有被磁盘或文件系统问题损坏。

假设创建了备份 backup_20110724.tar.gz,您可能还希望运行以下命令:

sha256sum backup_20110724.tar.gz > backup_20110724.tar.gz.sha256

然后它将创建一个包含如下内容的文件:

6d5fc8993d88739247ab76c01ddf3164e585b3ed02a63362cd209d2ba463eda5  backup_20110724.tar.gz

然后,您可以稍后按照以下步骤验证完整性:

sha256sum -c backup_20110724.tar.gz.sha256

答案2

Tarball 除了解压之外没有其他方式检查其完整性,因为它们实际上没有在任何地方存储校验和。幸运的是,列出内容通常就足以进行检查。

tar ztvf foo.tar.gz > /dev/null

如果您确实想要校验和,那么您需要使用另一种格式,例如 zip 或 7-zip。

答案3

在备份的同时生成 shawhatever - 这样更安全,而且通常也更快:

tar cjflS - /home | mtee 'cat > backup_20201207.tar.xz' 'sha256sum - > backup_20201207.sha256'

mtee 可从以下位置获取https://stromberg.dnsalias.org/~strombrg/mtee.html 全面披露:这是我写的。

相关内容