一、Rsync基于SSH认证的使用
rsync 默认使用 rsync 协议进行远程登录和数据传输,想使用ssh协议进行传输需要使用-e参数指定,并且远程主机需要开启 sshd 服务,rsync 在传输数据之前会先与远程主机进行一次 ssh 登录认证,然后通过 ssh 隧道进行数据传输。只需数据同步双方安装 rsync,但不必启动 rsyncd 服务。
可用 -e 选项指定协议:
rsync -r -e ssh /var/sysnc-src/ username@10.110.101.100:/var/rsync-dest
#指定通过ssh协议将/var/sysnc-src的数据递归同步到ip为10.110.101.100主机的/var/rsync-dest目录
使用 ssh 认证与传输的缺点是不安全:
-
登录认证使用的账号是远程主机可登录的系统账号,且需要手动输入密码;
-
同步数据不受目录限制。
rsync 命令属于1 v 4 的命令
-
类似于 cp 命令 -- 实现本地备份传输数据
-
类似于scp 命令 -- 远程备份传输数据
-
类似于 rm 命令 -- 实现无差异同步备份
-
类似于 ls 命令 -- 本地文件信息查看
① rsync==cp
[root@backup ~]# cp -a /etc/hosts /tmp/
[root@backup ~]# ls /tmp/hosts
[root@backup ~]# rm /tmp/hosts
[root@backup ~]# rsync /etc/hosts /tmp/
[root@backup ~]# ls /tmp/hosts
/tmp/hosts
② rsync == scp
远程数据同步方式(类似scp)---又称为隧道传输

说明:需要进行交互传输数据。如果想实现免交互传输数据,需要借助ssh+key方式实现


【实践操作】pull 拉
从远端拉文件到当前目录
[root@A~]# touch /tmp/1.txt
[root@B~]# rsync A:/tmp/1.txt .
root@A's password:
[root@B~]# ll
total 44
-rw-r--r-- 1 root root 0 Oct 11 16:16 1.txt
【实践操作】push推 (目录)
将本地的hosts文件推到远端服务器上
①使用push的格式 推整个目录(包括目录)
[root@NAT1 ~]# rsync -a ./sh 192.168.198.140:/root/111
[root@NAT1 ~]#


