yum install rsync
2. 配置
rsyncd 服务配置文件 /etc/rsyncd.conf:rsync -r /var/rsync-src/ /var/rsync-dest/
(2)将本地数据同步到远程(push)
将本地目录 /var/rsync-src/ 下的文件同步至远程主机 10.101.11.11 目录 /var/rsync-dest/rsync -r /var/rsync-src/ username@10.101.11.11:/var/rsync-dest/
(3)将远程数据同步到本地(pull)
将远程主机 10.101.11.11 目录 /var/rsync-dest/ 下的文件同步至本地目录 /var/rsync-dest/rsync -r username@10.101.11.11:/var/rsync-dest/ /var/rsync-dest/
4. 两种认证协议
rsync 进行远程同步时需要认证远程主机的账号密码,支持两种认证方式:ssh 协议认证与 rsync 协议认证。 (1)ssh 认证 rsync 默认使用 ssh 协议进行远程登录和数据传输。远程主机需要开启 sshd 服务,rsync 在传输数据之前会先与远程主机进行一次 ssh 登录认证,然后通过 ssh 隧道进行数据传输。只需数据同步双方安装 rsync,但不必启动 rsyncd 服务。 可用 -e 选项指定协议:rsync -r -e ssh /var/rsync-src/ username@10.101.11.11:/var/rsync-dest/
也可省略 -e:
rsync -r /var/rsync-src/ username@10.101.11.11:/var/rsync-dest/
使用 ssh 认证与传输的缺点是不安全:
<1>登录认证使用的账号是远程主机可登录的系统账号,且需要手动输入密码;
<2>同步数据不受目录限制。
(2)rsync 协议认证 与 ssh 认证不同,rsync 协议认证不需要依赖远程主机的 sshd 服务,但需要远程主机开启 rsyncd 服务,本地 rsyncd 服务可不必开启。另外,rsync 协议认证不是直接使用远程主机的真实系统账号,而是虚拟账号和虚拟密码,且可实现无需手动输入密码,同时 rsync 协议认证需要配置模块对远程同步的目录进行限制。对比 ssh 认证,rsync 协议认证安全性更高。 下面直接实践。(远程主机为服务端,本地主机为客户端) <1>rsyncd 配置(远程)useradd rsync -s /sbin/nologin -M
<3>设置虚拟账号密码(远程)
echo "jet:123456" > /etc/rsyncd.passwd chmod 600 /etc/rsyncd.passwd
<4>修改同步目录属主(远程)
chown -R rsync.rsync /var/rsync-dest
<5>开启 rsyncd 服务(远程)
systemctl start rsyncd
<6>请求同步(本地)
rsync -r /var/rsync-src/ jet@10.101.11.11::wjt-rsync
可通过配置本地密码文件实现无需手动输入密码:
echo 123456 > /etc/rsync.jet.passwd chmod 600 /etc/rsync.jet.passwd rsync -r /var/rsync-src/ jet@10.101.11.11::wjt-rsync --password-file=/etc/rsync.jet.passwd
或者通过环境变量进行设置:(变量名是固定的)
export RSYNC_PASSWORD=123456 rsync -r /var/rsync-src/ jet@30.102.74.67::wjt-rsync
5. 更多功能选项
(1)-a:归档模式,表示递归传输并保持文件属性。 (2)-v:显示同步过程中详细信息(文件列表)。可以使用"-vvvv"获取更详细信息。