【Linux】rsync的相关用途
Rsync,代表“remote sync”,它是本地和远程主机文件同步工具。它只同步更改的文件,以此实现最小化传输数据。
我使用Ubuntu 16.04做为例子,但是你可以把它应用到任何其它主流的Linux发型版。
基本语法
rsync命令和ssh,scp命令有点相似。
我们创建两个测试目录和一些文件:
$ mkdir dir1
$ mkdir dir2
$ touch dir1/somefile{1..100}
dir1中有100文件,dir2中为空。使用rsync把dir1内容同步到dir2:
$ rsync -r dir1/ dir2
-r选项代表递归,在同步目录时使用。
你也可以使用-a选项,代表同步所有,包括修改时间、群组、权限、特殊文件、也包括递归。
$ rsync -anv dir1/ dir2
注意上面的dir1/中的“/”不能少,它代表同步目录下文件, 如果没有“/” 代表同步这个目录。
和远程主机进行同步目录
首先,你要确保有远程主机的SSH访问权限。
把本地目录同步到远程主机:
$ rsync -a dir1/ [email protected]:~/dir2
把远程主机目录同步到本地:
$ rsync -a [email protected]:~/dir2/ dir1
rsync有用的选项
-z选项,压缩传输的文件:
$ rsync -az source dest
-P选项非常有用,它是-progress和-partial的组合。第一个选项是用来显示传输进度条,第二个选项允许断点续传和增量传输:
$ rsync -azP source dest
如果需要通过ssh进行无**传输的话可以用-e选项
rsync -avzP -e 'ssh -p 22' /root/test/ [email protected]~/
在-e后面添加上ssh即可