SDB:Home backup

跳转至: 导航, 搜索
这篇文章用来说明如何备份 /home 目录, 并说明如何使用相关的工具。

备份你的 /home

如果你的 /home 目录在独立的分区下,有时候可能一点改动就会引起麻烦,所以最好还是给它做个备份。

备份哪些东西

确定 /home 是否在单独的分区中

要确定 /home 是否在单独的分区中,可执行 df 命令:

df -h | grep /home

如果系统给出类似下面的信息:

/dev/sda4             122G  8.7G  107G   8% /home

则说明 /home 在单独的分区中。注意用来备份的介质的容量最小值在右侧第二列中显示(此处是 8.7G)

如果上述命令行未输出任何信息,则说明 /home 是 / 分区下的一个目录,你 应该 把它备份到外部介质中。

如果 /home 在 / 分区下,确定它的大小

可用文件管理器访问 /home (Konqueror/Dolphin/Nautilus), 在 home 目录上右击选择查看其属性,或者在终端输入:

du -sh /home/

系统会给出类似下面的信息:

8.5G    /home/

注意,如果你同时安装了 Windows(或者 其他 Linux 发行版),并把相应的目录挂载到了 /home/windows 下面,那么这些文件和其他用户在 /home 目录下文件的大小也会被计入上面的数值。此时可使用 du 命令给出相应目录的绝对路径,例如,若用户名为 Terry,就可以在终端输入:

du -sh /home/Terry

系统会给出类似下面的信息:

8.5G    /home/Terry/


备份过程

tar

按以下说明可以创建一个 tar 类型的压缩文件,来完整备份你的 /home 目录

你可以在下面的命令参数中用 j 替换 z 以调用 bzip2(而不是 gunzip) 以达到更好的压缩率。不过在用 bizp2 的时候别忘了把备份文件的扩展名由 .tgz 改为 .tbz,这样你以后看到文件名就不会忘记所使用的压缩工具啦。

备份

下面的命令将把用户 Terry 的文件打包到 /home 目录下一个名为 myBackup.tgz 的文件中:

sudo tar cpzvf /home/myBackup.tgz --same-owner /home/Terry/

增量备份

备份完一段时间后,你也可以更新备份文件:

sudo tar cvzpnf /home/myBackup.tgz --same-owner /home/Terry/

对比 / 验证

可以执行以下命令来对比原始目录和备份文件:

tar tzvf /home/myBackup.tgz -C /home/Terry/

恢复

要从备份文件恢复,执行:

sudo tar zxvf /home/temp.tgz -C /


dd

若你的 /home 在专用分区下,也可使用 dd 命令逐字节克隆文件, 可把一个分区完全克隆到另一个分区中,也可为一个分区创建恢复镜像文件。

在执行 dd 命令之前先要把备份使用的源分区和目标分区卸载
确保目标分区的容量不小于源分区的容量


分区克隆

要把 /home 分区克隆到另一个分区中,以根用户身份执行:

dd if=/dev/sda4 of=/dev/sdb2


分区镜像

把 /home 分区克隆到单个文件中, 执行:

dd if=/dev/sda4 of=/yourFilename.dd

要从目标文件中恢复, 执行:

dd if=/yourFilename.dd of=/dev/sda4


经过压缩(gzip)和分割的分区镜像

执行下面的命令将会产生一组大小为 650MB gzip 备份文件:

dd if=/dev/sda4 | gzip -c | split -b 650m - homedisk.dd.gz_

要从目标文件中恢复,执行:

cat homedisk.dd.gz_* | gzip -dc | dd of=/dev/hda4


一些备份软件

Bacula

rsync

Mondo Rescue

Amanda

Box Backup