作为系统管理员或Linux的高级用户,你可能已经可能遇到,甚至在多个场合,使用多功能的Linux Rsync的工具,它使用户能够迅速复制或本地和远程同步文件 。 它也是常用于备份操作和镜像的伟大工具。
它的一些突出的特点和优点包括: 它是非常多才多艺,因为它可以本地复制到/从远程shell或远程rsync,它也非常灵活,允许用户指定任意数量的文件要复制。
建议阅读: rsync命令的10实际的例子在Linux中
此外,它允许复制链接,设备,文件或目录所有者,组和权限。 它还支持使用无root权限加上更多。
与Linux中的其他文件处理命令相比,rsync的一个命令性差异是它使用远程更新协议,仅传输文件或目录内容之间的差异。
因此,在本文中,我们将研究rsync如何帮助我们仅在Linux中进行备份时同步新的或更改的文件或目录内容。
首先,你需要记住,使用rsync的常规和最简单的形式如下:
# rsync options source destination
也就是说,让我们来看一些例子来揭示上面的概念是如何工作的。
使用Rsync在本地同步文件
用下面的命令,我能够从我的文档目录在本地的/ tmp /目录中的文件复制文件:
$ rsync -av Documents/* /tmp/documents
在上面的命令中,选项:
-
-a
-指归档模式 -
-v
-指持续经营业务的繁琐,细节展示
在本地同步文件
默认情况下,rsync的只是从源到目的地复制新的或修改过的文件,当我添加一个新的文件到我的文档目录,这是运行相同的命令后第二次发生了什么:
$ rsync -av Documents/* /tmp/documents
同步新更新的文件
从命令的输出可以观察到并注意到,只有新文件被复制到目标目录。
推荐阅读: 如何同步两个Apache的Web服务器/网站使用rsync
该--update
或-u
选项允许rsync的跳过仍处于目标目录中的新文件,还有一个重要的选项, --dry-run
或-n
使我们无需做任何修改执行测试操作。 它显示我们要复制什么文件。
$ rsync -aunv Documents/* /tmp/documents
干同步文件之前运行rsync
执行测试运行后,我们就可以用做掉-n
并进行实际操作:
$ rsync -auv Documents/* /tmp/documents
同步更新的文件
将文件从本地同步到远程Linux
在下面的例子中,我抄袭我的本地机文件与IP地址的远程SEVER - 10.42.1.5。 因此,作为以仅同步在本地计算机上的新文件,不远程计算机上存在,我们可以包括--ignore-existing
选项:
$ rsync -av --ignore-existing Documents/* aaronkilik@10.42.1.5:~/all/
将文件同步到远程Linux
随后,为了仅同步本地计算机上已更改的远程计算机上的更新或修改的文件,我们可以在复制文件之前执行空运行,如下所示:
$ rsync -av --dry-run --update Documents/* aaronkilik@10.42.1.5:~/all/ $ rsync -av --update Documents/* aaronkilik@10.42.1.5:~/all/
检查仅同步更新的文件
要更新现有文件和防止目的地的新文件的创建,我们利用--existing
选项。
您可以通过运行rsync man
页,发现高级用法另外有用的选项,因为我已经提到早前,rsync的是一个非常强大和灵活的Linux工具和许多系统管理员和Linux电源用户知道它是多么有利。
最重要的是,您可以在我们在这里覆盖的示例或更好地分享您的看法,通过下面的评论部分提供关于使用这个重要的命令行工具的有价值的提示。