linux-tar备份

1. 备份系统

首先成为root用户:

$ sudo su

然后进入文件系统的根目录(当然,如果你不想备份整个文件系统,你也可以进入你想要备份的目录,包括远程目录或者移动硬盘上的目录):

# cd /

下面是我用来备份系统的完整命令:

# tar cvpzf backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys /

“tar”当然就是我们备份系统所使用的程序了。

“cvpfz”是tar的选项,意思是“创建档案文件”、“保持权限”(保留所有东西原来的权限)、“使用gzip来减小文件尺寸”。

“backup.gz”是我们将要得到的档案文件的文件名。

“/”是我们要备份的目录,在这里是整个文件系统。

在 档案文件名“backup.gz”和要备份的目录名“/”之间给出了备份时必须排除在外的目录。有些目录是无用的,例如“/proc”、“/lost+ found”、“/sys”。当然,“backup.gz”这个档案文件本身必须排除在外,否则你可能会得到一些超出常理的结果。如果不把“/mnt”排 除在外,那么挂载在“/mnt”上的其它分区也会被备份。另外需要确认一下“/media”上没有挂载任何东西(例如光盘、移动硬盘),如果有挂载东西, 必须把“/media”也排除在外。

有人可能会建议你把“/dev”目录排除在外,但是我认为这样做很不妥,具体原因这里就不讨论了。

 

备份完成后,在文件系统的根目录将生成一个名为“backup.tgz”的文件

在备份命令结束时你可能会看到这样一个提示:’tar: Error exit delayed from previous errors’,多数情况下你可以忽略它。

你还可以用Bzip2来压缩文件,Bzip2比gzip的压缩率高,但是速度慢一些。如果压缩率对你来说很重要,那么你应该使用Bzip2,用“j”代替命令中的“z”,并且给档案文件一个正确的扩展名“bz2”。完整的命令如下:

# tar cvpjf backup.tar.bz2 –exclude=/proc –exclude=/lost+found –exclude=/backup.tar.bz2 –exclude=/mnt –exclude=/sys /

 

2. 恢复系统

切换到root用户,并把文件“backup.tgz”拷贝到分区的根目录下。

 

使用下面的命令来恢复系统:

# tar xvpfz backup.tgz -C /

 

如果你的档案文件是使用Bzip2压缩的,应该用:

# tar xvpfj backup.tar.bz2 -C /

 

重新创建那些在备份时被排除在外的目录:

# mkdir proc
# mkdir lost+found
# mkdir mnt
# mkdir sys

restorecon -Rv / # 这条指令必须执行,否则重启无法进入系统 

重启系统 reboot

 

备份指定文件夹

tar  -xvzf  /abc/bcd/mm_20141223.tar.gz      /aaa/bbb/ccc.txt        将文件/aaa/bbb/ccc.txt 压缩到另一个路径/abc/bcd/下,并以mm_20141223.tar.gz名字命名

posted @ 2019-07-17 22:10  clyde_S  阅读(2690)  评论(0编辑  收藏  举报