使用 rsync 备份恢复整个 VPS

使用 rsync 备份恢复整个 VPS

我有一个运行 Debian 8 的 xen VPS,它必须离线,所以我使用 rsync 像这样备份它。

rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /path/to/backup/folder

然后,我将该备份文件夹放入 tar.gz 并将其移至本地机器。

我现在有一个在线的 KVM VPS,也运行 Debian 8,我需要将其恢复到该状态。如何恢复该备份?我还需要做其他什么来确保它启动吗?可以通过 SSH/SCP 完成吗?

答案1

您漏掉了一个可能至关重要的参数rsync--hard-links。这取决于发行版,我猜现在与过去有所不同,但系统目录和/或文件(比用户文件更容易)很容易成为其他文件的硬链接。例如,在 Archlinux 上,最近/usr/X11R6/bin有一个硬链接/usr/bin。目前,我无法为您提供今天的具体示例。您可以研究一下。

您可能还会因为将重要信息放入 而丢失信息tar.gz。它会存储 ACL 吗?它会存储硬链接吗?

您还错过了--sparse,但那仅仅只是一个不便而已。

要恢复它,我会启动一张 Live CD,或者 VPS 提供商提供的某种救援环境。然后,您只需将数据解压到根分区,chroot 到其中(使用绑定安装和/proc),然后运行类似/dev/sysgrub-install /dev/sda

这些选项可能因您的设置而异。

编辑:由于您可能有权访问原始 VPS,因此您可以执行以下操作:

pv /dev/vda | gzip --fast | ssh [email protected] "cat - > imagefile.gz"

然后在新主机上的救援环境中执行反向操作:

pv imagefile.gz | ssh [email protected] "gunzip - > /dev/sda"

相关内容