如何使用rsync备份整个Linux系统
前几天我想重新安装一个使用Ubuntu 16.04 LTS服务器的虚拟机。
在重新安装之前,我试图备份整个系统。
在寻找最简单的方法的同时,我发现了Arch Linux Wiki中最简单的解决方案。
我从来没有想过那么简单。
我使用单行命令用rsync复制我的整个根(/)树。
是的,它只是一个in-liner命令。
虽然有这么多工具来备份系统,但我发现这种方法超级方便,至少对我来说。
此外,这种方法比磁盘克隆与DD命令更好。
因为如果硬盘驱动器的大小不同,或者使用不同的文件系统并不重要。
此方法将在几乎所有已安装rsync的Linux系统上工作。
在这篇简短的教程中,让我解释如何使用rsync实用程序备份整个Linux系统。
使用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
此命令将备份整个root(/)目录,排除/dev,/proc,/sys,/tmp,/运行/mnt,/media,/丢失+找到的目录,并保存/mnt文件夹中的数据。
让我们分解上面的命令,看看每个参数是什么。
- rsync - 一个快速,多功能,本地和远程文件复制实用程序
- -aaxv - 文件以"归档"模式传输,这可确保保留符号链接,设备,权限,所有权,修改时间,ACL和扩展属性。
-/- 源目录 - Exclude - 从备份中排除给定目录。
-/mnt - 它是备份目标文件夹。
- Exclude - 从备份中排除给定目录。
请注意,如果在本地系统中存在,则必须排除目标目录。
它将避免无限循环。
推荐阅读:
- SemainShell - 找到Linux命令的每个部分
要恢复备份,请在上面的命令中反转源和目标路径。
请注意,这适用于本地和独立系统。
如果我们在网络上的某些其他系统积极访问系统,则它不是更好的解决方案。
因为,这些系统的内容可能每分钟不断更新,并且某些文件可能在rsync过程中发生变化。
例如,当rsync将到达文件2时,可能会更改先前文件(文件1)的内容。
当我们需要使用该备份时,这将使我们带有依赖性错误。
在这种情况下,基于快照的备份是更好的方法。
由于系统将在备份过程启动并在备份过程结束时将其"解冻"获得"冻结",因此所有文件都是一致的。