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 / 问题 / 59112
Accepted
Jimsmithkka
Jimsmithkka
Asked: 2009-08-27 08:18:47 +0800 CST2009-08-27 08:18:47 +0800 CST 2009-08-27 08:18:47 +0800 CST

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

  • 772

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

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

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

我很确定这将需要一种分层的方法,但任何输入都会有所帮助。

编辑:

被监控的系统大部分时间都是低流量的,而 apache 仅适用于应用程序的 Web UI,因此它并不像看起来那样过载

linux
  • 9 9 个回答
  • 7913 Views

9 个回答

  • Voted
  1. KPWINC
    2009-08-27T08:27:15+08:002009-08-27T08:27:15+08:00

    你知道,我非常喜欢关闭服务器并使用 Clonezilla 或 Norton Ghost 之类的东西来对那个傻瓜进行成像。

    即使是周五晚上 11 点,一个月一次……你懂的。

    几个小时的“计划停机时间”值得数小时和数小时的崩溃恢复。

    就像我告诉我的助手一样,“我不是因为我很聪明才这么说。我这么说是因为我曾经很愚蠢并且以艰难的方式吸取了教训!”


    谢谢你的更新。好的,所以这台服务器没有停机时间。

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

    是否可以选择在周日凌晨 3 点关闭网络?

    当然必须有某种方式来安排一些停机时间?

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

    • 3
  2. Best Answer
    Kamil Kisiel
    2009-08-27T08:24:30+08:002009-08-27T08:24:30+08:00

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

    • 2
  3. Dave Drager
    2009-08-27T08:51:28+08:002009-08-27T08:51:28+08:00

    我在您的情况下看到了两种选择:

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

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

    • 2
  4. Zoredache
    2009-08-27T08:52:31+08:002009-08-27T08:52:31+08:00

    我非常喜欢使用dirvish进行备份。它基本上只是一个 perl 脚本,可以轻松地使用 rsync 进行备份。

    对于 mysql 数据库,您确实需要使用 mysqldump 实用程序或专门为此目的设计的工具。使用 rsync 复制数据库文件不是一个好主意。

    • 1
  5. Guss
    2009-08-27T09:14:47+08:002009-08-27T09:14:47+08:00

    通常可以将文件系统内容同步到另一个位置,就是这样。增量备份应该非常快(几分钟?取决于 rsync 可用的带宽以及备份的频率),因此您甚至可以在几乎没有效果的情况下将有问题的服务关闭(我确实注意到“无停机时间”要求)。

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

    • 1
  6. Guss
    2009-08-27T09:21:38+08:002009-08-27T09:21:38+08:00

    另一种备份服务器的方法,有点像 Dave 的第一个建议,是备份一个备用的 raid 设备。这是一种与我的第一个答案非常不同的方法,因此我将其放在另一个答案中。

    您可以做的是使用带有镜像的软件 raid (mdraid) 设置您的服务器。然后,当您要拍摄快照时,断开一个raid 设备(mdadm /dev/md0 --fail /dev/sdb1 --remove /dev/sdb1),dd服务器断开设备的内容,然后将其重新附加到raid(mdadm --re-add /dev/sdb1)。RAID 同步将复制设备关闭时更改的所有数据。

    当您恢复时,您可以dd将相同的数据存储到两个 RAID 设备(无论如何它都是镜像)。恢复的映像在最坏的情况下看起来好像服务器在事务期间断电,因此无论如何您都应该使用日志文件系统和事务数据库。

    在这种情况下,您可能希望使用 3 驱动器系统,以便您的系统可以在备份期间处理灾难,在这种情况下,您可能想要拥有 3 路镜像并断开第三个设备进行备份,甚至将其安装在热开关托架上,然后按照此线程中的说明将其物理移除(如果您想这样做,请通读该线程 - 原始发布者对特定命令及其顺序存在一些问题)

    • 1
  7. Rajat
    2009-08-27T09:31:39+08:002009-08-27T09:31:39+08:00

    我在用着

    块引用

    rsync --delete --times --recursive --perms --owner --group --verbose --progress --stats -e ssh [email protected]:/backup1/ /backup1/

    块引用

    在该服务器上的第二台服务器上,我有 lvm 配置,因此很容易运行备份,只需拍摄快照,您可以点击链接

    http://www.howtoforge.com/linux_lvm_snapshots

    • 1
  8. dimitri.p
    2009-08-27T09:39:22+08:002009-08-27T09:39:22+08:00

    看看 www.microlite.com 上的 backupEdge

    (可惜他们没有windows版本)

    • 0
  9. duffbeer703
    2009-08-27T09:56:01+08:002009-08-27T09:56:01+08:00

    克隆不是生产系统的可行备份方案。

    查找 Curtis Preston 的“Unix Backup and Recovery”一书。许多商业应用程序以及像 Amanda 这样的开源应用程序都可以备份实时系统。不过,会有一个学习曲线。

    通常,备份内容最具挑战性的方面是恢复。首先开始计划恢复。如果您无法为备份而关闭系统,那么您也无法恢复它。

    • 0

相关问题

  • 多操作系统环境的首选电子邮件客户端

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

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

Sidebar

Stats

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

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

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

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

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

    • 3 个回答
  • Marko Smith

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

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +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