AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 394891
Accepted
xperator
xperator
Asked: 2012-06-02 16:02:30 +0800 CST2012-06-02 16:02:30 +0800 CST 2012-06-02 16:02:30 +0800 CST

Linux - 映像备份解决方案?

  • 772

我想知道有没有办法将linux 系统的类似快照的备份制作成单个文件并在另一个系统中恢复它?

您知道在 Windows 中有一些程序可以将驱动器(如 C:\ )复制到单个图像文件中。因此,您可以稍后恢复此文件,以防您被感染或发生某些事情。

每次我想将我的vps迁移到另一台主机时,我必须从头开始设置新服务器并手动移动文件。我可以只对整个系统进行快照备份并将其恢复到其他地方(或在同一台服务器上)吗?

我不熟悉 linux,我不知道这在技术上是否可行?分区、配置、系统文件等……对于每个系统都是单独的吗?

我听说过rsync,但这不是我要找的。

backup linux
  • 5 5 个回答
  • 741 Views

5 个回答

  • Voted
  1. Best Answer
    EEAA
    2012-06-02T16:23:47+08:002012-06-02T16:23:47+08:00

    虽然在某些情况下可以使用快照式备份,但它们在这种情况下没有用。这样做的主要原因是 VPS 提供商很少为您提供足够低级别的系统访问权限,以便您能够以这种方式恢复数据。

    这里真正的答案是使用配置管理系统来管理您的服务器。Puppet 和 Chef 是目前最流行的两个配置管理系统。使用这些系统行,您可以在一组文本文件中指定您希望如何配置您的服务器、您希望安装哪些软件包等。然后这些配置可以应用于任何服务器,无论其位置如何。

    • 5
  2. Richard Keller
    2012-06-03T16:54:42+08:002012-06-03T16:54:42+08:00

    创建文件系统的映像是完全可能的。事实上,对于某些发行版,例如 Gentoo,这实际上是首选方法,不仅可以备份现有系统,还可以基于现有基础安装部署新系统。Gentoo 特别从源代码编译每个包,因此部署新安装的最快方法是将现有的通用安装打包并将其解压缩到新系统上,从而节省数小时的编译时间。这称为第 4 阶段安装,在Gentoo wiki上有详细说明。

    但是,为了恢复这样的映像,您需要使用 live CD 启动新系统,如果您运行的是 VPS,这可能是不可能的。如果这不是问题,这就是您归档和恢复系统的方式:


    存档系统

    归档现有安装时,需要注意一些注意事项,最重要的是不应包含在归档中的目录列表。例如,您当然不想包含/dev,同样地,包含/proc目录也会有些毫无意义。以下是创建存档时应排除的目录的通用列表:

    .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
    

    当然,此列表会因发行版而异,但这些是大多数系统的安全默认值。请注意列表中的最后一行 - 您必须在排除列表中包含您正在创建的存档文件的文件名。

    要创建存档,请使用以下命令:

    tar cvjf /path/to/save/at/archive.tar.bz2 / -X excluded.txt

    (其中excluded.txt包含要排除的目录列表的文本文件。)

    以下是用于创建存档的标志的简要说明:

    c - create archive
    v - verbosely list files processed
    j - use bzip2 compression
    f - specify file name
    X - use the specified exclusion file
    


    恢复存档

    我必须强调,这个过程会因您使用的发行版而异。这个过程很大程度上基于Gentoo 的第 4 阶段安装中使用的过程,但对于其他发行版来说,整个过程将非常相似。整个过程是这样的:

    1. 使用 live CD 启动
    2. 放入控制台
    3. 创建你的分区,创建文件系统并挂载文件系统(为了便于解释,将你的分区挂载到/mnt/recovery
    4. 将存档文件复制到已安装的分区
    5. tar -xvjpf archive.tar.bz2使用特别注意此过程中使用的标志来提取存档。
    6. 创建一些基本的设备节点:
      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 不太熟悉,您可能会对此感到困惑。不幸的是,我想不出更简单、可靠的方法来创建和恢复整个系统快照。

    • 2
  3. Tom
    2012-06-02T17:33:48+08:002012-06-02T17:33:48+08:00

    您可能会想要使用一些了解特定配置的解决方案,并且可以制作有用的系统配置副本。

    实施此策略的一些软件示例是;

    http://www.cfg2html.com/
    webmin 备份
    系统配置收集器 和蓝图

    另一种选择是迁移到了解配置的工具,该工具可用于将该配置重新部署到另一台机器。此类软件的示例是;

    厨师
    木偶
    cfengine

    • 0
  4. Peter Nunn
    2012-06-03T16:13:25+08:002012-06-03T16:13:25+08:00

    如果您想要的只是系统的完整副本,则可以使用 dd。

    [如此处所示1 ] 但是,如上所述,在 VPS 上,这对您可能不是完全有用。

    • 0
  5. nearora
    2012-06-03T18:36:44+08:002012-06-03T18:36:44+08:00

    检查适用于 Linux 的 Ghost。我已经成功地将它用于生产项目。命令行界面足够直观。

    • 0

相关问题

  • IIS 6.0 (Windows Server 2003) 备份的最佳实践?

  • 10TB数据和3台服务器的备份解决方案

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

  • 最佳混合环境(OS X + Windows)备份?[关闭]

  • 如何从 SQL Server 2008 中的备份中排除索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve