如何通过 ssh 创建 Live 系统的映像?

如何通过 ssh 创建 Live 系统的映像?

我有一个关于 FreeBSD 服务器的问题,目前我无法访问它。但是因为我们想尝试一些新东西,所以我们想先创建此系统的备份。

问题是:是否有可能通过 ssh 从当前实时系统的整个服务器磁盘创建磁盘映像?

如果有:我想知道该如何做到这一点。

答案1

在 Linux 下实际上不可能。在 Windows 下可以的原因是卷影复制。

如果您的系统使用 LVM,您可以拍摄快照,然后rsync对其进行文件的原子复制,但是您需要恢复分区/引导加载程序。

如果必须这样做,最简单的方法是dd复制它:

dd if=/dev/sda | ssh user@remotehost 'dd of=/path/to/output'

然后,为了 100% 确保您的文件没有问题,rsync从正在运行的文件到您dd安装映像的驱动器。(我已经跳过了rsync数百次差异,没有任何不良影响,但那只是在大量读取的服务器访问上)

答案2

使用转储(8)创建(文件)系统的快照。

dump -0aLf /path/to/dumpfile /

这将创建根文件系统的实时转储并将其保存到 /path/to/dumpfile。该转储可以通过 ssh 传输到另一台计算机。或者您可以使用它一次性完成。

dump -0aLf - | ssh my.backup.server dd of=/path/on/my/server/dumpfile

稍后可以通过以下方法恢复:

cd /where/I/should/restore
restore -xf /path/to/dumpfile

数据库等应用程序必须单独处理。例如,对于 MySQL 数据库,您可以使用 mysqldump 创建一个 sql 命令文本文件,该文件可以在另一台 MySQL 服务器上运行,以便导入到那里。其他数据库也有类似的方法。

答案3

如果你的目标机器上只有一个根文件系统需要复制,那么使用如下命令:

rsync --numeric-ids --delete -vax source_machine:/ /target_dir

两次或更多次。第二次运行已经重用了第一次运行的缓存条目,运行速度非常快,并且几乎提供了真实的快照,但有一些限制。您可以通过简单地重复“rsync”任意次数来观察“原子性”。在迭代之间真正发生变化的文件(日志文件等)大多很少(因此需要复制/删除)。

相关内容