网上很多关于rsync的描述不是很清楚,我重新整理了一下,并经过实际验证可行。具体内容如下:
环境:
A: 服务端 cenos6.5 192.168.2.200
B :客户端 ubuntu 14.04 192.168.2.166
功能
一. 客户端从服务器端拉取内容
二. 客户端向服务器端推送内容
三. 服务器端向客户端推送
操作
1.服务器端配置 /etc/rsyncd/rsyncd.conf (如果没有就创建)
#rsync
uid = nobody
gid = nobody
use chroot = no
max connections = 10
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
[pids]
path = /var/eadv/data/
comment = rysnc dir
ignore errors
read only = yes
write only = no
auth users = pids
secrets file = /etc/rsyncd/rsyncd.secrets
2. 编辑/etc/rsyncd/rsyncd.sercets 输入:
pids:123456
3. chmod 600 /etc/rsyncd/rsyncd.sercets
4. 执行 rsync --daemon
如果出现 /etc/rsyncd.conf 找不到等情况,请修改etc/rsyncd/rsyncd.conf的位置,比如建立链接文件
ln -s /etc/rsyncd/rsyncd.conf /etc/rsyncd.conf
5. 客户端配置如下(192.168.2.166)
echo"123456" > /etc/rsyncd.pass
#
注意这里的密码文件中只有用户密码没有用户
chown root.root/etc/rsyncd.pass
chmod 600 /etc/rsyncd.pass
6. 从服务器端拉取
/usr/bin/rsync -avz --progress --password-file=/etc/rsync.pass root@192.168.2.200::pids /www/pids
7. 向服务器推送
/usr/bin/rsync -avz --progress --password-file=/etc/rsync.pass /www/pids root@192.168.2.200::pids
提示:如果失败,修改服务器端权限 write only = yes
8. 从服务器向客户端推送,需配置ssh证书等,暂不详细论述
rsync --timeout=10 --bwlimit=20000 -Lv -e ssh /var/eadv/data/upload/* root@192.168.2.166:/var/.eadv/data/
注意 参数 大写的L 可以同步链接文件夹。