怎样用tar命令做完整系统备份?

在安装并设置好服务器后做一次完整备份是明智的做法,这样能避免恢复数据时重新配置。尽管Linux有许多备份工具,但很多管理员仍然喜欢旧标准,因为它更灵活,并且提供更多选择。

“tar”是一个很精确有效的命令。很容易在文本文件中输入命令,使之成为一个shell脚本。当然,还需要创建一个文件夹放置备份文件。我们将使用一个分隔开的目录,避免将其包含在备份文件中。输入以下命令:

# cd /
# mkdir backups
# cd backups

然后使用nano编辑器,用下面的命令创建一个shell脚本文件:

# nano fullserver.sh

并在其中输入以下命令(不要忘记命令末尾的句号):

tar -cvpf /backups/fullbackup.tar –directory=/ –exclude=proc
–exclude=sys –exclude=dev/pts –exclude=backups .

上面命令用多行是为了方便阅读。在编辑器中可将所有内容输入在一行。输入后,不要忘记保存文件(Ctrl-X)。

c选项创建备份文件。

v选项是在命令执行时给出更详细输出。可以不选这一项,不影响安全。

p选项保留文件和目录权限。

f选项需要放在最后,因为它让你指定命令后的备份文件名称和位置,这个实例使用的是 /backups/fullbackup.tar 文件。

# –directory 选项告诉tar在开始备份之前切换到文件系统的根目录。

# –exclude 是备份时排除特定文件,因为这些目录是系统动态产生的。此外,还需要排除包含这个备份文件的目录。

网络上的许多tar说明给出的排除实例是:

# –exclude=/proc

然而,这样做往往会导致排除目录仍然被包含在备份中,因为目录名称前不应有斜杠/符号。如果你使用上面命令,tar会备份proc目录。

除了放置备份文件以外,/backups目录还放置你的脚本文件。在运行前应让脚本可执行,可采用下面两个命令:

chmod 750 /backups/fullserver.sh
./backups/fullserver.sh

要恢复备份压缩包,需要将其复制到文件数的最高点。以本文为例,–directory选项告诉tar从文件系统的根开始备份,因此这也是解压缩开始的地方。命令很简单,只是用x代替c即可:

tar -xvpf /fullbackup.tar

有备份虽然好,但如果是硬盘本身出问题,备份也会丢失。因此,最好将备份文件保存到不同设备中,以确保安全。

如果想进一步压缩文件,可以采用以下命令

tar -zcvpf /backups/fullbackup.tar.gz –directory=/ –exclude=proc
–exclude=sys –exclude=dev/pts –exclude=backups .

同样,解压缩文件变成:

tar -zxvpf /fullbackup.tar.gz