背景 在设置服务器方面,我仍然认为自己是个菜鸟。因此,在回答这个问题时,请尽可能详细地回答。
环境 我在 Raspberry Pi 4 上运行 LEMP 服务器,它是一个功能齐全的电子邮件服务器,也是一个功能齐全的 Web 服务器。
问题 由于我还是个菜鸟,我很容易犯错误。因此,过去和将来,我都会不小心错误配置某些东西或多个东西,而没有意识到(或记得)我到底配置错了什么或如何修复它。因此,我正在寻找适用于 Raspberry Pi (arm) 上的 Ubuntu 服务器的本地备份解决方案。以下是我需要备份解决方案包含的具体内容...
理想的解决方案 在这种情况下,最理想的情况是拥有 2 个备份驱动器,为两种不同类型的自动备份解决方案:
增量备份- 第一个备份驱动器,理想情况下需要像命令行一样工作Mac OS 上的时间机器。唯一的区别是它会为所有文件(包括根目录)创建增量备份,而不是像 Mac OS Time machine 那样只为用户目录创建增量备份。这将确保我的所有服务器应用程序(PHP、Nginx、Postfix、Wordpress 等)和安装在根目录、/var、/etc 和其他重要根用户目录下的配置都将被备份和恢复提前到指定日期。另一个要求是备份工具保持适当的权限,并具有完全恢复的简单方法从较早日期开始将所有文件传输到服务器。
克隆备份- 第二个驱动器应具有命令行备份解决方案,其功能类似于 MacOS 上的应用程序ApplePi-Baker它创建 Linux 驱动器的克隆,首先缩小所有具有额外空间的分区,然后创建“.iso”格式的克隆,可以直接将其 DD 到 USB 驱动器并作为原始驱动器的精确副本启动到 Linux。在我的 Ubuntu 服务器上,我希望有一个具有类似功能的解决方案。除此之外,我需要能够克隆正在运行的服务器驱动器的解决方案。理想情况下,我希望使用第二个驱动器来创建原始服务器的本地精确克隆(ISO 格式),这样如果除了从增量备份恢复之外出现任何严重错误,我可以将 ISO 映像 DD 到新驱动器并启动,以便轻松回归到再次完美工作的服务器。同样,我需要这些克隆的格式为“.ISO”格式作为正确的磁盘映像,每个分区中的所有额外空间都缩小以消除可用空间,使克隆的 ISO 文件尽可能小。
问题
- 有人可以推荐一种可以作为 cron 作业运行的工具或命令来完成上述两个所需的解决方案吗?
- 此外,如果发生严重灾难或管理配置错误,您能否推荐任何其他适当的解决方案来完全备份 Ubuntu 20.04 LEMP 服务器?
感谢这里的任何帮助和建议。我找不到合适的 Linux 解决方案!
答案1
我找到了一个针对 Raspberry Pi 的解决方案,但也可能适用于任何操作系统,因为该解决方案涉及 bash 脚本来完成正在运行的 ubuntu 系统的完整 ISO 备份。如果您想要一个针对 Raspberry Pi 的完整备份解决方案,您可以按照我的教程进行操作https://danran.rocks/2022/09/how-to-make-a-live-backup-of-your-raspberry-pi-ubuntu-raspberry-pi-os-server-to-create-live-bootable-iso-images-on-an-external-drive/
简而言之,前往https://forums.raspberrypi.com/viewtopic.php?t=332000image-utils.zip
并从论坛下载文件。它们包含 bash 脚本,您可以将其放入其中/usr/local/bin/
并使用 sudo 用户 crontab 自动运行它们。当将正在运行的 raspberry pi 4 与 ubuntu 20.04 服务器备份到外部磁盘时,这些功能非常有效。它们会创建您正在运行的 ubuntu 系统的完全可启动 ISO 文件并将其保存到硬盘上。如果发生灾难,您只需使用 etcher 将保存的 ISO 刻录到磁盘,然后启动到服务器恢复的状态。
我怀疑它们在非 raspberry-pi(非 ARM)设备上也能正常工作,因为它们只是脚本。我认为架构并不重要。
编辑:这些很可能不会在非 Raspberry Pi 设备上工作,因为它们考虑了 Raspberry Pi OS 和 Ubuntu Server 使用的自定义启动分区。该分区是主启动记录,与 uefi 不兼容,在 x86 系统上使用这些脚本时可能会导致问题。最坏的情况是,您可以尝试修改脚本中的代码,使其自身适应 EFI 分区,而不是 MBR 分区作为启动分区。