如果您备份系统并创建一个包含数千个文件和目录的 .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 全面披露:这是我写的。