1. 前言
作为系统管理员或Linux高级用户,您可能在某些场合需要在本地和远程服务器之间快速复制或同步文件。rsync
是一个很好的工具,通常用于备份操作和镜像。
其突出的特点和优势包括:它的用途非常广泛,可以在本地同步文件或从远程同步文件,它还非常灵活,允许用户指定要复制的任何数量的文件。
此外,它允许复制链接、设备、文件或目录所有者、组和权限。它还支持非root
用户权限的使用。
与Linux中的其他文件复制命令相比,rsync的一个必要的区别是它使用了远程更新协议,只传输文件或目录内容之间的差异。
因此,在本文中,我们将研究rsync如何帮助我们在进行备份的同时只同步新的或更改的文件或目录内容。
首先,您需要记住使用rsync
的最简单的传统形式如下:
rsync options source destination
2. 使用Rsync同步本地文件
使用下面的命令,能够从当前目录复制文件到本地服务器的/home/zcwyou/documents
目录:
rsync -av Documents/* /home/zcwyou/documents
参数解释:
-a
归档模式-v
输出详细的信息
默认情况下,rsync
只将更新的文件从源文件复制到目标路径。
--update
或-u
选项允许rsync
跳过没有更新的文件,一个重要的选项–--dry-run
或-n
允许我们在不做任何更改的情况下执行测试操作。它告诉我们将要复制哪些文件。
rsync -aunv Documents/* /home/zcwyou/documents
在执行一个测试运行之后,我们可以去掉-n
并执行一个实际的操作:
rsync -auv Documents/* /home/zcwyou/documents
3. 把本地文件同步到远程服务器上
在下面的示例中,我们将文件从本地机器复制到IP地址为10.42.1.5的远程服务器上。为了只同步本地机器上的新文件,而远程机器上不存在这些文件,我们可以包含--ignore-existing
选项:
rsync -av --ignore-existing Documents/* zcwyou@10.42.1.5:~/all/
然后,为了只给远程机器同步本地机器上修改的文件,我们可以在同步文件之前执行一个演练,如下所示:
rsync -av --dry-run --update Documents/* zcwyou@10.42.1.5:~/all/
如果确认没有错,就执行以下命令进行真同步:
rsync -av --update Documents/* zcwyou@10.42.1.5:~/all/
为了更新现有文件并防止在目标中创建新文件,我们使用--existing
选项。
4. 总结
您可以通过运行man rsync
页面来发现高级使用的其他有用的选项,正如我前面提到的,rsync是一个非常强大和通用的Linux工具,许多系统管理员和Linux高级用户都在经常使用它。
评论前必须登录!
注册