rsync在ssh认证方式下,可通过系统用户进行认证,即在rsync上通过ssh隧道进行传输,类似于scp工具。
此时同步操作不在局限于rsync中定义的同步文件夹。
注意:
ssh认证方式,不需要服务器和客户端配置rsync配置文件
只需要双方都安装rsync服务,并且也不需要双方启动rsync。
# 若rsync服务端SSH为标准端口,此时rsync使用方式如下:
rsync -avz /root/test root@10.10.10.10:/root/
# 若rsync服务端SSH为非标准端口,可通过rsync的-e参数进行端口指定。使用方式如下:
rsync -avz /root/test -e 'ssh -p1234' root@10.10.10.10:/root/
rsync同步数据保持文件原有属性、权限。
# rsync -acrt -e 'ssh -p 22' ./yum.repos.d root@192.168.8.67:/etc/
两边都需要安装rsync客户端,传输才会成功。
-a: –archive archive mode 权限保存模式,相当于 -rlptgoD 参数,存档,递归,保持属性等。
-c: --checksum 打开校验开关,强制对文件传输进行校验
-r: –recursive 复制所有下面的资料,递归处理。
-t: –times 保留时间点,文件原有时间。
-e: --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
--rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息
# rsync -avzP -e 'ssh -p 22' _data/ root@controller3:/var/lib/docker/volumes/mariadb/
-v: –verbose详细模式输出。
-a: –archive归档模式,表示以递归方式传输文件,并保持所有文件属性不变。
-z: –compress对备份的文件在传输时进行压缩处理。
-P:显示传输进度 -P参数和 --partial --progress 相同,只是为了把参数简单化,表示传进度。
--version:输出rsync版本。
--------------------------
[jboss@192-168-120-9 ~]$ rsync -azv -e "ssh -p 22" 3rd.tar.gz jboss@192.168.120.10:/tmp/
sending incremental file list
3rd.tar.gz
sent 766,606 bytes received 35 bytes 117,944.77 bytes/sec
total size is 766,114 speedup is 1.00
-------------------------
[jboss@192-168-120-9 ~]$ rsync -azvP -e "ssh -p 22" 3rd.tar.gz jboss@192.168.120.10:/tmp/
sending incremental file list
3rd.tar.gz
766,114 100% 15.54MB/s 0:00:00 (xfr#1, to-chk=0/1)
sent 766,606 bytes received 35 bytes 1,533,282.00 bytes/sec
total size is 766,114 speedup is 1.00