如何将主备份恢复到几乎全新的 Debian?

如何将主备份恢复到几乎全新的 Debian?

我正在考虑如何将 .tar.gz HOME 备份安全地恢复到几乎新的 Debian 系统中(某些文件可以存在并且应该保留rsync -u)。我的主电脑坏了,所以我必须使用备份 Debian 系统,但我需要主系统的 HOME 备份(仅以下主文件)。系统特点

  • $HOME/home/masi/

以root身份进行家庭备份的代码

#1. [但因循环符号链接而失败]

# http://unix.stackexchange.com/a/291720/16920
nice tar czf /media/masi/ext4Masi/backup_home_20.12.2016.tar.gz $HOME/

我的目录中有符号链接。我注意到 tarball 不包含所有目录,例如$HOME/Documents/和/或/home/masi/Documents/.该目录有许多符号链接,也许还有一些循环符号链接。 tarball 再次包含$HOME/Desktop/和 ,$HOME/Downloads其中不应包含任何循环符号链接,并且Downloads目录根本没有符号链接。

#2. [拒绝,因为会造成大量重复文件]

tar czf --dereference \ 
   /media/masi/ext4Masi/backup_home_20.12.2016.tar.gz $HOME/

#3. ...

使用备份的代码[已弃用;使用tar xzfC ...]

我认为rsync这里可能是正确的选择,无需删除,但可以-u选择跳过目标文件已存在且日期晚于源文件的任何文件 (要求关于几乎); 伪代码因为我认为.tar.gz不能在那里输入

# http://unix.stackexchange.com/a/287016/16920
rsync -rtvuc --progress \
    /media/masi/ext4Masi/backup_home_20.12.2016.tar.gz $HOME/

但是,我仍然不确定

  • 关于正确维护文件目录层次结构
  • 你怎么能有.tar.gz文件作为输入rsync

操作系统:Debian 8.5

答案1

rsync当你可以使用时为什么要参与tar

如果您使用以下命令创建备份:

tar czf /media/masi/ext4Masi/backup_home_20.12.2016.tar.gz $HOME/

然后您可以恢复文件而不覆盖现有文件,如下所示:

tar xzfC /media/masi/ext4Masi/backup_home_20.12.2016.tar.gz / --keep-newer-files

tar各种文档的手册页不要覆盖旗帜。


事实证明,您的备份包含指向已备份树外部的文件的符号链接。如果您不介意丢失符号链接,您可以使用-h( --deference) 选项备份期间将它们引用到真实的文件和目录中。另一方面,如果您想保留符号链接及其目标,则需要将这些目标包含在备份中。

示例 1,您很高兴将符号链接转换为真实的文件或目录:

tar czf /path/to/backup.tgz --deference "$HOME"

示例 2,您想要包含符号链接的目标。这假设您的目标位于/bigdisk/myfiles/

tar czf /path/to/backup.tgz "$HOME" /bigdisk/myfiles

相关内容