33.2. tar 备份程序

tar 备份程序是一个归档程序,旨在存储和从称为 tar 文件的归档文件中提取文件。tar 文件可以在磁带驱动器上创建;但是,将 tar 文件写入普通文件也很常见。

一个简单的备份是指当您决定备份系统上的文件时,您必须在开始备份过程之前选择一个备份方案。存在许多战略性备份方案,并且取决于您想要使用的备份策略。在下面,我们向您展示了一种您可以使用的备份方案,该方案利用了 tar 程序的功能。此方案是首先完整备份所有内容一次,然后备份自上次备份以来已修改的所有内容。

  1. 第一次备份称为完全备份

  2. 随后的备份称为增量备份。

使用六盘磁带,您可以每天进行备份;该步骤是使用磁带 1 进行第一次完全备份星期五 1,并使用磁带 2 到 5 进行增量备份星期一到星期四。然后,您在磁带 6 第二个星期五上进行新的完全备份,然后再次开始使用磁带 2 到 5 进行增量备份。重要的是保持磁带 1 的状态,直到您使用磁带 6 获得新的完全备份。

在下面的示例中,我们假设我们将备份写入名为/dev/st0SCSI 磁带驱动器,并且我们备份系统的 home 目录/home/。首先,我们必须移动到文件系统/ 分区。创建归档文件时,tar 将从文件路径名中剥离前导的/斜杠字符。这意味着恢复的文件可能不会最终出现在它们备份的相同位置。因此,为了解决这个问题,解决方案是在进行所有备份和恢复之前切换到

根目录。/要移动到
[root@deep]# cd /
根目录,请使用命令

始终从完全备份开始非常重要;例如在星期五
[root@deep] /# cd /
[root@deep] /# tar cpf /dev/st0 --label=" full-backup created on `date '+%d-%B-%Y'`." \
     	 --directory / home

星期五 1. 使用磁带 1 进行第一次完全备份。
[root@deep] /# cd /
[root@deep] /# tar cpNf /dev/st0 --label=" full-backup created on `date '+%d-%B-%Y'`." \
     	 --directory / home

星期一. 使用磁带 2 进行增量备份。
[root@deep] /# cd /
[root@deep] /# tar cpNf /dev/st0 --label=" full-backup created on `date '+%d-%B-%Y'`." \
     	 --directory / home

星期二. 使用磁带 3 进行增量备份。
[root@deep] /# cd /
[root@deep] /# tar cpNf /dev/st0 --label=" full-backup created on `date '+%d-%B-%Y'`." \
     	 --directory / home

星期三. 使用磁带 4 进行增量备份。
[root@deep] /# cd /
[root@deep] /# tar cpNf /dev/st0 --label=" full-backup created on `date '+%d-%B-%Y'`." \
     	 --directory / home

星期四. 使用磁带 5 进行增量备份。
[root@deep] /# cd /
[root@deep] /# tar  cpf /dev/st0 --label=" full-backup created on `date '+%d-%B-%Y'`." \
     	 --directory / home

星期五 2. 使用磁带 6 进行新的完全备份。

选项声明紧随其后的参数将是要写入的归档文件或设备的名称。请注意,如何通过将date命令括在两个反引号字符之间来派生包含当前日期的文件名。一个常见的命名约定是为未压缩的归档文件添加tar后缀,为压缩的归档文件添加tar.gz后缀。由于我们无法为备份集指定文件名,因此可以使用--label并且我们备份系统的 home 目录选项将有关备份集的一些信息写入归档文件本身。最后,只有包含在

中的文件才会被写入磁带。命令括在两个反引号字符之间来派生包含当前日期的文件名。一个常见的命名约定是为未压缩的归档文件添加由于磁带驱动器是字符设备,因此无法指定实际的文件名。因此,用作tar参数的文件名只是设备名称,tar/dev/st0tar,即第一个磁带设备。该
[root@deep] /# mt -f  /dev/st0 rewind
[root@deep] /# mt -f  /dev/st0 offline

Caution

设备在写入备份集后不会倒带。因此,可以在一盘磁带上写入多个备份集。您也可以将设备称为命令括在两个反引号字符之间来派生包含当前日期的文件名。一个常见的命名约定是为未压缩的归档文件添加,在这种情况下,磁带在写入备份集后会自动重绕。当使用磁带时,您可以使用以下命令来重绕和弹出磁带为了减少归档所需的空间,可以使用 tar 程序的为了减少z

选项压缩备份。不幸的是,使用此选项压缩备份可能会导致问题。由于压缩的工作原理,如果压缩备份中的单个位错误,则所有其余的压缩数据都将丢失。建议不要使用压缩,即使用 tar 命令进行备份的选项。 如果您的备份无法容纳在一盘磁带上,则需要使用--multi-volume
[root@deep] /# cd /
[root@deep] /# tar cMpf /dev/st0 /home
-Mtar选项

准备卷 #2 以用于并按回车键 在完成备份后,您应该使用--compare
[root@deep] /# cd /
[root@deep] /# tar dvf /dev/st0

-d
[root@deep] /# cd /
[root@deep] /# tar  cpf /archive/full-backup-`date '+%d-%B-%Y'`.tar \
 --directory / --exclude=proc --exclude=mnt --exclude=archive \
 --exclude=cache --exclude=*/lost+found .

Caution

选项告诉 tar 不要费心备份指定的目录或文件。命令末尾的字符告诉 tar 它应该备份当前目录中的所有内容。命令末尾的备份文件系统时,请勿包含/proc, 伪文件系统!/proc中的文件实际上不是文件,而只是描述和指向内核数据结构的文件状链接。另外,不要包含/mnt