在本例中,工具提示告诉我们外部驱动器上文件系统的挂载点是“/media/dave/SILVERXHD”。
如果您的文件浏览器不执行此操作,请浏览到外部驱动器并在该位置打开一个终端窗口。使用pwd命令打印终端窗口的路径。
从源目录复制内容
要使用rsync将目录内容复制到备份目标,请使用以下命令。
r(递归)选项使rsync复制所有嵌套的子目录及其内容。请注意,在单词“SILVERXHD”的末尾有一个正斜杠“/”,但它已换到屏幕截图中的下一行。
rsync -r /home/dave/Documents/ /media/dave/SILVERXHD/
将进行文件复制,并返回到命令行提示符。
如果我们查看外部USB驱动器,我们会看到Documents目录中的目录已被复制到外部驱动器的根目录。
ls
复制源目录及其内容
如果您希望将Documents目录及其内容复制到外部驱动器,请删除命令行中“/home/dave/document”末尾的“/”,如下所示:
rsync -r /home/dave/Documents /media/dave/SILVERXHD/
为避免混淆,在执行第二个命令之前,我从外部驱动器中删除了之前复制的两个目录。
如果我们让第二个副本完成,并再次查看外部驱动器,我们会看到Documents目录已被复制。其内容在该目录中。它们不在外部驱动器的根目录中。
复制到特定目标目录
要复制到目标硬盘上的特定目录,请将该目录的名称添加到目标路径。假设我们想要将“/home/dave/document”目录的内容复制到外部驱动器上名为“backups”的目录中。
我们将使用以下命令完成此操作。
rsync -r /home/dave/Documents/ /media/dave/SILVERXHD/backups/
检查外部驱动器,我们可以看到备份目录已经创建,在该目录中是“/home/dave/document”目录的内容。
ls
ls backups
保留文件所有权和权限
使用-a(存档)选项为复制的文件、符号链接和特殊块文件保留文件属性,如修改日期、文件所有权、访问权限等。
rsync -ra /home/dave/Documents/ /media/dave/SILVERXHD/backups/
使用详细模式
v(详细)选项强制rsync在复制文件时列出它们。
rsync -rav /home/dave/Documents/ /media/dave/SILVERXHD/backups/
复制完成后,将显示备份摘要。
已发送:传输到目标的字节数。 已接收:主机接收的字节数。 字节/秒:是有效传输速率。 总大小:表示如果不使用rsync将发送的数据的大小。在随后运行rsync时,它将仅传输文件差异。此图将表示无需传输的数据。 加速比:这是必须发送的数据量与现有数据总量之间的比率。如果rsync需要完整复制所有文件(例如,第一次运行时),则平均加速比将为1.0。当下一次使用rrsync时,它将优化传输。它将只发送文件之间的差异,而不是整个文件。没有更改的文件将被忽略。加速比数字将表示需要传输的少量数据与文件总大小之间的比率。
使用进度选项
P(进度)选项使rsync在复制每个文件后生成一个小进度报告。
rsync -raP /home/dave/Documents/ /media/dave/SILVERXHD/backups/
可以在每个复制的文件之间查看提供的信息。
提供的资料如下:
字节大小:为此文件传输的数据。 Percent:传输的文件的百分比。 B/s:数据传输速率。 剩余时间:估计传输此文件的剩余时间。 xfr#:到目前为止传输的文件数。 to-chk:优化算法需要检查和验证的文件数。
增加更多速度
要加快传输速度,请使用-z(压缩)选项。这会压缩传输中的文件,但文件会以未压缩的形式存储在目标目录中。
对于涉及许多小文件的传输,压缩选项不会产生显著优势。对于较大文件的集合,它可以以有意义的方式减少传输时间。
我们在这里还使用了--PARTIAL选项。rsync将删除由网络故障或其他中断导致的部分传输的文件。PARTIAL选项强制rsync将部分传输的文件保留在目标上。在rsync运行的净时间内,它将不必重新传输部分传输的文件的各部分。
请注意,如果有人可能会将部分传输的文件误认为完全传输的文件,您可能不想使用此选项。
rsync -ravz --partial /home/dave/Documents/ /media/dave/SILVERXHD/backups/
在我们的示例中,收益微乎其微。
加速比提高了,但是提高了百分之二百分之一!在真实场景中,您的速度提升会更令人印象深刻。
在网络上使用rsync
到目前为止,我们一直在瞄准一个外置USB驱动器。要使用网络位置作为备份目标,请在命令行上使用该位置的路径。本文研究的网络上有一个网络附加存储设备(NAS)。
我们可以使用之前使用的相同技巧来识别通往NAS的路径,方法是将鼠标悬停在Nautilus中该设备的连接上。
没有用于跨网络备份的特殊选项;这些都是我们已经使用过的选项。
rsync -ravz --partial /home/dave/Documents/ /media/dave/NAS/dave/backups/
输出的格式没有区别。
不足为奇的是,字节/秒数字有了显著改善。
如果我们再次运行rsync,可以看到没有要传输的文件,因为没有任何更改,但仍有一些字节来回传输。这是将目标上的文件列表与源上的文件列表进行比较时需要传输的数据量。
在这种情况下,加速比要好一个数量级。在实践中,您的性能比率将介于我们两个伪人工读数之间。
通过SSH使用rsync
Rsync支持跨SSH连接进行备份。我们需要在命令行上提供用户帐户名和SSH位置。我们在这里使用的是网络名称,但您也可以使用IP地址。
请注意远程目标上的SSH连接详细信息和网络路径起点之间的“:”。
rsync -ravz --partial /home/dave/Documents/ dave@sulaco.local:/home/dave/Backups/
系统将要求您输入远程计算机上用户帐户的密码。这不是您在源计算机上的密码。
备份将照常完成。由于在安全外壳连接中进行加密和解密,因此吞吐量没有常规网络连接快。
自动执行备份
通过向您的crontab文件添加条目,我们可以轻松创建自动备份。
crontab -e
我们将设置一个自动备份,使其在每天下午4点半运行(当然,如果当时计算机处于开机状态)。rsync命令的语法完全不变。
Ctrl+O将把您的更改写入文件,Ctrl+X将关闭Nano编辑器。
相关:如何在Linux上调度任务:Crontab文件简介
在rsync上摆出一张友好的面孔
不太习惯使用命令行的人可以使用将图形用户界面(GUI)放在rsync上的许多程序中的一个。LuckyBackup和Grsync就是两个很好的例子。这两个程序都允许通过用户界面选择许多rsync选项。
Grsync程序专注于成为rync的可视化包装器。它提供了对rsync选项的轻松访问,并且只添加了一组有限的新功能。
luckyBackup程序不仅仅是rsync的简单包装器。它是一个在幕后使用rsync的备份程序。例如,LuckyBackup可以为您的备份创建多个“快照”。然后,您可以“回滚”到任何快照中的文件版本。
要安装Grsync,请执行以下操作
要在Ubuntu中安装Grsync,请使用以下命令:
sudo apt-get install grsync
要在Fedora中安装Grsync,请使用以下命令:
sudo dnf install grsync
要在Manaro中安装Grsync,请使用以下命令:
sudo pacman -Syu grsync
要安装luckyBackup,请执行以下操作
要在Ubuntu中安装luckyBackup,请使用以下命令:
sudo apt-get install luckybackup
要在Fedora中安装luckyBackup,请使用以下命令:
sudo dnf install luckybackup
在Manjaro中,您必须从Arch用户存储库(AUR)安装luckyBackup。您可以使用PAMAC包管理器完成此操作。
不要冒险,经常备份您的数据
备份绝对至关重要。经常备份,备份到多个位置,备份到不同的介质。一旦设置好,rsync就可以为您完成所有这些工作。