我想知道有没有一种方法可以将一个linux系统的类似快照的备份转换为单个文件并在另一个系统中恢复 ?
你知道在Windows中有一些程序,使一个驱动器的副本(如C:\)成为一个单一的图像文件。 所以你可以在以后再次恢复这个文件,否则你被感染或发生什么事情。
每次我想将我的vps 迁移到另一台主机时,我必须从头开始设置新的服务器并手动移动这些文件。 我可以对整个系统进行快照备份并将其还原到其他位置(或在同一台服务器上)?
我不熟悉Linux,我不知道这是否技术上可行? 每个系统的逻辑,configuration,系统文件等都是独立的吗?
我听说过rsync ,但这不是我正在寻找的。
尽pipe在某些情况下快照样式备份是可能的,但在这种情况下它们将不会有用。 这样做的主要原因是VPS提供商很less给你足够的访问权限,以便你能够以这种方式恢复数据。
这里真正的答案是使用configurationpipe理系统来pipe理你的服务器。 木偶和厨师是目前最stream行的两种configurationpipe理系统。 通过这些系统,您可以在一组文本文件中指定您希望如何configuration服务器,安装哪些软件包等。这些configuration可以应用于任何服务器,无论其位置如何。
创build文件系统的映像是完全可能的。 事实上,对于一些发行版,如Gentoo,这实际上是不仅备份现有系统,而且还部署基于现有基本安装的新系统的首选方法。 特别是Gentoo从源代码编译每个软件包,因此部署新安装的最快捷的方法是将现有的通用安装程序集成到新系统中,从而节省数小时的编译时间。 这被称为第4阶段安装,在Gentoo维基上详细介绍。
但是,为了恢复这样的图像,您需要使用Live CD启动新系统,如果您运行的是VPS,则可能无法启动。 如果这不是问题,那么你将如何去归档和恢复你的系统:
存档系统
归档现有安装时,需要注意一些注意事项,最重要的是您不应包含在归档中的目录列表。 例如,你当然不想包含/dev ,同样的,包括/proc目录在内也是没有意义的。 以下是创build存档时应该排除的通用目录列表:
.bash_history /mnt/* /tmp/* /proc/* /sys/* /dev/* /etc/mtab /etc/ssh/ssh_host_* /usr/src/* /path/to/save/at/the_archive_file_you_are_creating.tar.bz2
当然,这个列表会从发行版到发行版有所不同,但是这些是大多数系统的安全默认值。 记下列表中的最后一行 – 您必须在排除列表中包含您正在创build的档案文件的文件名。
要创build存档,请使用以下命令:
tar cvjf /path/to/save/at/archive.tar.bz2 / -X excluded.txt
(其中excluded.txt是包含要排除的目录列表的文本文件。)
以下是用于创build存档的标志的快速删除:
c - create archive v - verbosely list files processed j - use bzip2 compression f - specify file name X - use the specified exclusion file
恢复档案
我必须强调,这个过程会根据您使用的发行版而有所不同。 这个过程主要基于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 完成之后,您还需要configurationGRUB以确保引导configuration正确; 这是你最有可能绊倒的地方,所以三重检查你的GRUBconfiguration,确保一切正确。
我强烈build议您浏览一下Gentoo wiki上的Stage 4指南。 这是一个很好的资源,详细说明这个过程。
总而言之,这是您的问题的理想解决scheme,但是我怀疑由于您使用的是VPS,因此您不太可能是最实用的,因为您可能无法轻松访问DVD驱动器或IPKVM切换器在从头开始configuration的同时在系统上执行工作。 一个忠告,如果你决定走这条路线,我build议在本地机器上执行这个程序几次; 如果以前从来没有做过,那么可能会有点棘手,而最后一件事是恢复归档文件时,在远程服务器上遇到非平凡问题的压力。
更新:我刚刚注意到,你说你不熟悉Linux。 我在这里描述的过程并不是微不足道的,所以如果你不太熟悉Linux,你可能会与此战斗。 不幸的是,我想不出一个更简单,更可靠的方法来创build和恢复整个系统的快照。
您可能要使用某些了解特定configuration的解决scheme,并且可以制作系统configuration的有用副本。
一些实施这一战略的软件的例子是;
http://www.cfg2html.com/
webmin备份
系统configuration收集器和蓝图
另一种方法是迁移到了解configuration的工具,以及可用于将该configuration重新部署到另一台计算机的工具。 这种types的软件的例子是;
厨师
木偶
cfengine的
如果你想要的只是一个完整的系统副本,你可以使用dd。
[如图1所示],但如上所述,在VPS上,这可能对您没有任何用处。
Checkout Ghost for Linux 。 我已经成功地用于生产项目。 命令行界面足够直观。