如何使用 Rsync 备份整个 Linux 系统

在这个简短的教程中,让我解释如何使用 Rsync 实用程序备份整个 Linux 系统。 此方法适用于几乎所有安装了 rsync 的 Linux 系统。

介绍

前几天我想重新安装一个运行 Ubuntu 16.04 LTS 服务器的虚拟机。 在重新安装之前,我尝试备份整个系统。

在寻找最简单的方法时,我在 Arch Linux wiki 中找到了一个最简单的解决方案。 我从没想过事情会这么简单。

我复制了我的整个根目录(/) 树与 Rsync 使用单行命令。 是的,这只是一个单行命令。 虽然有很多工具可以备份您的系统,但我发现这种方法非常简单方便,至少对我来说是这样。

此外,这种方法比使用磁盘克隆更好 dd 命令。 因为您的硬盘驱动器大小不同或使用不同的文件系统都没有关系。 无论硬盘大小和底层文件系统如何,它都可以工作。

使用 Rsync 备份整个 Linux 系统

首先,插入您的备份介质(USB 拇指驱动器或外部硬盘)。 然后使用找到驱动器号 fdisk -l 命令。 就我而言,我的笔式驱动器 ID 是 /dev/sdb1.

将您的驱动器安装到您选择的任何位置。 我要把它安装在下面 /mnt.

$ sudo mount /dev/sdb1 /mnt

要备份整个系统,您只需打开终端并运行以下命令 root 用户:

$ sudo rsync -aAXv / --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /mnt

此命令将备份整个根 (/) 目录,不包括 /dev, /proc, /sys, /tmp, /run, /mnt, /media, /lost+found 目录,并将数据保存在 /mnt 文件夹。

让我们分解上面的命令,看看每个参数的作用。

  • rsync – 快速、多功能、本地和远程文件复制实用程序
  • -aAXv – 文件以“归档”模式传输,确保保留符号链接、设备、权限、所有权、修改时间、ACL 和扩展属性。
  • / – 源目录
  • --exclude – 从备份中排除给定目录。
  • /mnt – 它是备份目标文件夹。

重要的提示: 请注意,您 必须排除目标目录,如果它存在于本地系统中。 它将避免无限循环。

如果要保留硬链接,只需包括 -H 上述命令中的标志。 请注意,它会消耗更多内存。

要恢复备份,只需反转上述命令中的源路径和目标路径即可。

请注意,这仅适用于本地和独立系统。 如果您的系统正在被网络上的其他一些系统主动访问,这不是一个更好的解决方案。

因为,系统的内容可能每分钟都在不断更新,一些文件可能会在 rsync 过程中发生变化。

说为 example,当 rsync 到达文件 2 时,可能会更改前一个文件(文件 1)的内容。 当您需要使用该备份时,这会给您留下一个依赖错误。

在这种情况下,基于快照的备份是更好的方法。 因为系统会在备份过程开始前“冻结”,而在备份过程结束时“解冻”,所以所有文件都是一致的。

相关阅读:

  • 如何在 Linux 中使用 Rsync 备份文件和目录
  • 如何在 Linux 中使用 Deja Dup 备份和恢复文件
  • 如何使用 Rsnapshot 设置备份服务器
  • 如何在 Linux 中使用 Restic 备份和恢复数据
  • 如何使用 Timeshift 备份和恢复 Linux 系统
  • 如何在 Linux 上使用 Unison 同步文件
  • 如何在 Linux 中同步本地和远程目录
  • 如何使用 Zaloha.sh 同步文件和目录
  • CYA – 适用于 Linux 的系统快照和还原实用程序

来源: