一个简单的备份方案是先完整备份一次所有内容,然后再备份自上次备份以来修改过的所有内容。第一次备份称为完整备份,随后的备份称为增量备份。完整备份通常比增量备份更费力,因为需要写入磁带的数据更多,而且完整备份可能无法放入一张磁带(或软盘)。从增量备份恢复可能比从完整备份恢复要费力得多。可以优化恢复过程,以便始终备份自上次完整备份以来的所有内容;这样,备份工作会稍微多一些,但永远不需要恢复超过一个完整备份和一个增量备份的内容。
如果您想每天进行备份并有六盘磁带,您可以将磁带 1 用于第一次完整备份(例如,在星期五),并将磁带 2 到 5 用于增量备份(星期一到星期四)。然后在磁带 6 上进行新的完整备份(第二个星期五),并再次使用磁带 2 到 5 开始进行增量备份。在您获得新的完整备份之前,您不想覆盖磁带 1,以免在您进行完整备份时发生意外。在您将完整备份制作到磁带 6 后,您需要将磁带 1 放在其他地方,这样当您的其他备份磁带在火灾中被毁坏时,您仍然至少有一些东西留下。当您需要进行下一次完整备份时,您取出磁带 1 并将磁带 6 放在原位。
如果您有超过六盘磁带,您可以将额外的磁带用于完整备份。每次进行完整备份时,您都使用最旧的磁带。这样,您可以拥有来自前几周的完整备份,如果您想查找一个旧的、现在已删除的文件,或文件的旧版本,这将非常有用。
可以使用 tar 轻松完成完整备份
# tar --create --file /dev/ftape /usr/src tar: Removing leading / from absolute path names in the archive # |
如果您的备份不适合一张磁带,您需要使用--multi-volume (-M) 选项
# tar -cMf /dev/fd0H1440 /usr/src tar: Removing leading / from absolute path names in the archive Prepare volume #2 for /dev/fd0H1440 and hit return: # |
在您完成备份后,您应该使用以下选项检查备份是否正常:--compare (-d) 选项
# tar --compare --verbose -f /dev/ftape usr/src/ usr/src/linux usr/src/linux-1.2.10-includes/ .... # |
可以使用 tar 和以下选项完成增量备份:--newer (-N) 选项
# tar --create --newer '8 Sep 1995' --file /dev/ftape /usr/src --verbose tar: Removing leading / from absolute path names in the archive usr/src/ usr/src/linux-1.2.10-includes/ usr/src/linux-1.2.10-includes/include/ usr/src/linux-1.2.10-includes/include/linux/ usr/src/linux-1.2.10-includes/include/linux/modules/ usr/src/linux-1.2.10-includes/include/asm-generic/ usr/src/linux-1.2.10-includes/include/asm-i386/ usr/src/linux-1.2.10-includes/include/asm-mips/ usr/src/linux-1.2.10-includes/include/asm-alpha/ usr/src/linux-1.2.10-includes/include/asm-m68k/ usr/src/linux-1.2.10-includes/include/asm-sparc/ usr/src/patch-1.2.11.gz # |
用于 tar 的--extract (-x) 选项提取文件
# tar --extract --same-permissions --verbose --file /dev/fd0H1440 usr/src/ usr/src/linux usr/src/linux-1.2.10-includes/ usr/src/linux-1.2.10-includes/include/ usr/src/linux-1.2.10-includes/include/linux/ usr/src/linux-1.2.10-includes/include/linux/hdreg.h usr/src/linux-1.2.10-includes/include/linux/kernel.h ... # |
# tar xpvf /dev/fd0H1440 usr/src/linux-1.2.10-includes/include/linux/hdreg.h usr/src/linux-1.2.10-includes/include/linux/hdreg.h # |
# tar --list --file /dev/fd0H1440 usr/src/ usr/src/linux usr/src/linux-1.2.10-includes/ usr/src/linux-1.2.10-includes/include/ usr/src/linux-1.2.10-includes/include/linux/ usr/src/linux-1.2.10-includes/include/linux/hdreg.h usr/src/linux-1.2.10-includes/include/linux/kernel.h ... # |
tar 不能正确处理已删除的文件。如果您需要从完整备份和增量备份恢复文件系统,并且您在两次备份之间删除了一个文件,那么在您完成恢复后,该文件将再次存在。如果该文件包含不应再提供的敏感数据,这可能是一个大问题。