备份独立 Linux 服务器的最佳方法是什么

备份独立 Linux 服务器的最佳方法是什么

我有一个独立的 Linux IDS 系统,我一直在组装它。它在本地运行 MySQL,以及 ntop、nagios、base、snort、apache 等。我希望能够备份包含旧系统所有内容的系统,以便我可以从系统的静态映像快速执行 dd,然后将其恢复到最后状态。

据我所知,我无法对实时系统进行 DD,这让我不知道如何从服务器备份所有内容。

我以前从未使用过 rsync,我认为它可能是解决方案,但我不确定是否可以在实时 mysql DB 上使用它。

我非常确定这需要分层的方法,但任何意见都会有帮助。

编辑:

被监控的系统大部分时间流量都很低,而且 Apache 只用于应用程序的 Web UI,因此它并没有看上去那么过载

答案1

对于 mysql 你可以使用mysqldump将数据库内容转储到文件中。除此之外,您通常只需要备份配置文件(/etc以及您修改的任何其他目录)、任何其他数据目录、日志文件和已安装软件包的列表。您应该能够通过全新安装操作系统、从列表中安装软件包以及替换数据和配置文件来恢复系统。

答案2

您知道,我非常喜欢关闭服务器并使用 Clonezilla 或 Norton Ghost 之类的软件来对该吸盘进行映像处理。

即使是每个月一次的星期五晚上 11 点...你也明白了。

几个小时的“计划停机时间”相当于几个小时的崩溃恢复时间。

就像我告诉我的助手,“我这么说不是因为我聪明。我这么说是因为我曾经也愚蠢过,并且通过惨痛的经历学到了教训!”


感谢您的更新。好的,所以该服务器没有停机时间。

是否可以建立一个“热备用”以供克隆驱动器所需的 2-3 小时使用?

周日凌晨 3 点关闭网络是一个选择吗?

肯定存在某种方式来安排一些停机时间吧?

我只是想在这里给你一个“简单”的解决方案。:-)

答案3

对于你的情况,我认为有两种选择:

  1. 在虚拟容器中运行系统。您可以通过这种方式获取实时磁盘映像;即使它是系统上唯一的 VM。由于它正在分析网络流量,不知道这对您来说效果如何;但我认为这是在不关闭磁盘的情况下制作完整磁盘映像的唯一方法。
  2. 备份各个组件。找出所有自定义组件,备份它们,并通过还原到新系统来测试备份。也许可以写出一个可以自动从备份中恢复的计划或脚本。

您可以在实时数据库上使用 rsync,但可能会导致数据损坏。停止数据库,运行 rsync,然后重新启动。您还可以转储数据库并 rsync 该文件。

答案4

通常,只需将文件系统内容 rsync 到另一个位置即可。增量备份应该非常快(几分钟?取决于 rsync 可用的带宽以及备份频率),因此您甚至可以在几乎不产生任何影响的情况下暂时关闭有问题的服务(我确实注意到了“无停机时间”要求)。

这种做法的常见罪魁祸首是不能很好地处理快照的 MySQL 数据库。您可以使用 Kamil 的建议(转储到 SQL 文件并备份)或执行某种“热备份”来解决这个问题。后一种方法的优点是 rsync 更喜欢它 - 为每个备份创建一个新的 SQL 转储往往会导致 rsync 每次都复制整个数据库,这对于大型数据库来说是一个漫长的过程。使用“热备份”,您可以利用 rsync 仅复制数据更改的功能。Innobase(InnoDB 的创建者)销售一种商业产品来对整个数据库进行热备份。我发现,只要您没有大量的 DB 写入,您就可以摆脱困境LOCK TABLES,rsync 二进制文件,然后UNLOCK TABLES。当您恢复时,MySQL 认为您的服务器崩溃了并很好地恢复(您确实希望在恢复后运行mysqlcheck)。

相关内容