在这个简短的教程中,让我解释如何使用 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 的系统快照和还原实用程序
来源: