我想知道有没有办法将linux 系统的类似快照的备份制作成单个文件并在另一个系统中恢复它?
您知道在 Windows 中有一些程序可以将驱动器(如 C:\ )复制到单个图像文件中。因此,您可以稍后恢复此文件,以防您被感染或发生某些事情。
每次我想将我的vps迁移到另一台主机时,我必须从头开始设置新服务器并手动移动文件。我可以只对整个系统进行快照备份并将其恢复到其他地方(或在同一台服务器上)吗?
我不熟悉 linux,我不知道这在技术上是否可行?分区、配置、系统文件等……对于每个系统都是单独的吗?
我听说过rsync,但这不是我要找的。
虽然在某些情况下可以使用快照式备份,但它们在这种情况下没有用。这样做的主要原因是 VPS 提供商很少为您提供足够低级别的系统访问权限,以便您能够以这种方式恢复数据。
这里真正的答案是使用配置管理系统来管理您的服务器。Puppet 和 Chef 是目前最流行的两个配置管理系统。使用这些系统行,您可以在一组文本文件中指定您希望如何配置您的服务器、您希望安装哪些软件包等。然后这些配置可以应用于任何服务器,无论其位置如何。
创建文件系统的映像是完全可能的。事实上,对于某些发行版,例如 Gentoo,这实际上是首选方法,不仅可以备份现有系统,还可以基于现有基础安装部署新系统。Gentoo 特别从源代码编译每个包,因此部署新安装的最快方法是将现有的通用安装打包并将其解压缩到新系统上,从而节省数小时的编译时间。这称为第 4 阶段安装,在Gentoo wiki上有详细说明。
但是,为了恢复这样的映像,您需要使用 live CD 启动新系统,如果您运行的是 VPS,这可能是不可能的。如果这不是问题,这就是您归档和恢复系统的方式:
存档系统
归档现有安装时,需要注意一些注意事项,最重要的是不应包含在归档中的目录列表。例如,您当然不想包含
/dev
,同样地,包含/proc
目录也会有些毫无意义。以下是创建存档时应排除的目录的通用列表:当然,此列表会因发行版而异,但这些是大多数系统的安全默认值。请注意列表中的最后一行 - 您必须在排除列表中包含您正在创建的存档文件的文件名。
要创建存档,请使用以下命令:
tar cvjf /path/to/save/at/archive.tar.bz2 / -X excluded.txt
(其中
excluded.txt
包含要排除的目录列表的文本文件。)以下是用于创建存档的标志的简要说明:
恢复存档
我必须强调,这个过程会因您使用的发行版而异。这个过程很大程度上基于Gentoo 的第 4 阶段安装中使用的过程,但对于其他发行版来说,整个过程将非常相似。整个过程是这样的:
/mnt/recovery
tar -xvjpf archive.tar.bz2
使用特别注意此过程中使用的标志来提取存档。mknod -m 660 /mnt/recovery/dev/console c 5 1
mknod -m 660 /mnt/recovery/dev/null c 1 3
mknod -m 600 /mnt/recovery/dev/initctl p
完成后,您还需要配置 GRUB 以确保引导配置正确;这是您最有可能出错的地方,因此请仔细检查您的 GRUB 配置以确保一切正确。
我强烈建议您查看 Gentoo wiki 上的第 4 阶段指南。这是一个很好的资源,详细说明了这个过程。
总而言之,这是您问题的理想解决方案,但我怀疑由于您使用的是 VPS,因此它不太可能是最实用的,因为您可能无法轻松访问 DVD 驱动器或 IPKVM 切换到在系统上执行工作,同时从头开始配置它。忠告,如果你决定走这条路,我建议在本地机器上执行这个过程几次;如果您以前从未做过,它可能会变得有点棘手,而您最不想要的就是在恢复存档时在远程服务器上遇到重要问题的压力。
更新:我刚刚注意到您说您不熟悉 Linux。我在这里描述的过程并不简单,所以如果您对 Linux 不太熟悉,您可能会对此感到困惑。不幸的是,我想不出更简单、可靠的方法来创建和恢复整个系统快照。
您可能会想要使用一些了解特定配置的解决方案,并且可以制作有用的系统配置副本。
实施此策略的一些软件示例是;
http://www.cfg2html.com/
webmin 备份
系统配置收集器 和蓝图
另一种选择是迁移到了解配置的工具,该工具可用于将该配置重新部署到另一台机器。此类软件的示例是;
厨师
木偶
cfengine
如果您想要的只是系统的完整副本,则可以使用 dd。
[如此处所示1 ] 但是,如上所述,在 VPS 上,这对您可能不是完全有用。
检查适用于 Linux 的 Ghost。我已经成功地将它用于生产项目。命令行界面足够直观。