备份会占用大量空间,这可能会花费很多钱。为了减少所需的空间,可以压缩备份。有几种方法可以做到这一点。一些程序内置了对压缩的支持;例如,--gzip (-z) 选项,用于 GNU tar 将整个备份通过 gzip 压缩程序进行管道传输,然后再将其写入备份介质。
不幸的是,压缩备份可能会引起问题。由于压缩的工作原理,如果单个位出现错误,则所有其余的压缩数据将无法使用。一些备份程序具有一些内置的错误纠正功能,但是没有哪种方法可以处理大量错误。这意味着,如果备份像 GNU tar 那样压缩,即将整个输出作为一个单元压缩,则单个错误会导致备份的其余部分丢失。备份必须是可靠的,因此这种压缩方法不是一个好主意。
另一种方法是分别压缩每个文件。这仍然意味着一个文件会丢失,但是所有其他文件都完好无损。丢失的文件无论如何都会损坏,因此这种情况与根本不使用压缩相比并没有糟糕多少。afio 程序(cpio 的一个变体)可以做到这一点。
压缩需要一些时间,这可能会导致备份程序无法以足够快的速度为磁带驱动器写入数据。这可以通过缓冲输出来避免(如果备份程序足够智能,则可以在内部缓冲,或者使用另一个程序),但即使这样也可能无法很好地工作。这应该只在较慢的计算机上成为问题。