rsync是一款用于文件同步的工具,它可以在本地文件和远程文件之间进行同步更新,并且可以在长距离的网络环境下进行文件同步。rsync提供了许多功能,包括增量复制、备份、远程同步和权限控制等。同时,rsync支持ssh协议和非ssh协议的文件传输,可以通过配置参数实现各种不同的同步操作。通过rsync,我们可以实现本地文件同步、本地和远程文件的同步、远程和本地文件的同步等。rsync 是 linux系统下的数据镜像备份工具,可用于本地文件复制,也可与其他 SSH、rsync 主机远程同步文件和目录。使用 rsync 进行数据同步时,第一次进行全量备份,以后则是增量备份,利用 rsync 算法(差分编码),只传输差异部分数据。
1.本地文件同步
可以使用以下命令实现本地文件之间的同步:
rsync -av sourcedir destdir
其中,sourcedir为源目录,destdir为目的目录。-a表示同步的时候会保留文件的元信息、权限等信息,-v表示以详细模式输出同步信息。
2.远程文件同步
可以使用以下命令实现本地到远程服务器的文件同步:
rsync -avz sourcedir username@host:/path/to/destdir
其中,-z表示启用压缩传输,可以在网络环境较差的情况下提高同步效率。username为目标服务器的用户名,host为目标服务器的主机名或IP地址,/path/to/destdir为目标目录。
3.远程文件到本地同步
可以使用以下命令实现远程服务器的文件同步到本地:
rsync -avz username@host:/path/to/sourcedir destdir
其中,/path/to/sourcedir为目标服务器上的源目录,destdir为本地的目标目录。
4.增量同步
在进行文件同步的过程中,有时候我们只需要同步增量文件(即已经修改过的文件),rsync可以通过--update参数实现增量同步。
rsync -avz --update sourcedir username@host:/path/to/destdir
--update表示只同步新的和已经修改的文件。
5.排除文件和目录
有时候,我们需要排除一些文件或者目录,rsync可以通过--exclude参数来排除它们:
rsync -avz --exclude='*.log' sourcedir username@host:/path/to/destdir
--exclude表示排除某些文件或者目录。上面的例子中,rsync将会在同步的时候忽略掉.log文件。
6.选项解释
选项 | 作用 |
---|---|
-a | 归档模式,保留文件权限、属性等信息 等同于组合选项 -rlptgoD |
-v | 显示同步的详细过程 |
-H | 保留硬链接文件 |
-A | 保留 ACL 属性信息 |
-z | 传输时进行压缩 |
--delete | 删除目标位置有而原始位置没有的文件 |
--checksum | 根据校验和来决定是否跳过文件 |