实施目的:

实现将文件从10.0.0.40/wb/的文件同步到10.0.0.194/wb/下 

实施流程:

1.在两台机器上安装rsync

yum install rsync 

 

2.配置服务端(被同步服务器),10.0.0.194

vi /etc/rsyncd.conf

添加以下内容:

uid = tomcat #设置执行rsync的本地用户

gid = tomcat  #设置执行rsync的本地组

use chroot = yes #是否chroot

 

max connections = 4  #最大同时连接数

 

pid file = /var/run/rsyncd.pid  #指定rsync服务进程的pid file

 

lock file = /var/run/rsync.lock  #指定rsync服务端锁定文件log file = /var/log/rsyncd.log     #指定rsynclog输出路径

 

log file = /var/log/rsyncd.log  #设置执行rsync的本地组

 

[logfile]  #模块设定,可设置多个模块

path = /wb/log/  #同步文件的真实路径

ignore errors

read only = false   #是否只读

list = false

hosts allow =10.0.0.40/255.255.255.240 #允许同步ip/网段

hosts deny = 0.0.0.0/32

auth users = backznfs #身份验证用户。这不是系统用户,而是rsync服务自定的

secrets file = /etc/rsyncd.pwd  #logfile模块的密码文件

 


[testabc]

path = /wb/abc/

ignore errors

read only = false

list = false

hosts allow =10.0.0.40/255.255.255.240

hosts deny = 0.0.0.0/32

auth users = backznfs

secrets file = /etc/rsyncd.pwd

uidgid指明了运行身份(本机上创建该用户,由于40上的文件目录权限都是tomcat所以本机创建tomcat用户,chroot表示连接后自动切换目录,read only=false是允许别的客户端向本机的服务器端上传。host allowdeny是限制连接地址。auth user是认证用户名,secrets file = /etc/rsyncd.pwd是表示认证用户名的时候到这里读取密码。 

3.编写密码文件(服务端含用户名和密码)

vi /etc/rsyncd.pwd  

backznfs:123456  

 

4.启动服务端,服务端的工作完成

/usr/bin/rsync --daemon   #启动服务


ps -ef|grep rsync   #查看进程


5.创建密码文件:

#vi /root/rsync.pwd 
123456

 

6.在客户端执行命令测试(下方列出了几项常见错误)

rsync -vrtL --progress  /wb/abc/*  backznfs@10.0.0.194::wwwfile --password-file=/root/rsync.pwd

 

 

7.编写定时运行脚本;


新建日志备份脚本文件

#vi rsync_log.sh

rsync -vrtL --progress

--exclude "www" /wb/log*  backznfs@10.0.0.194::logfile --password-file=/root/rsync.pwd

--exclude "www" 表示除去/wb/log/www这个目录不同步,不除去可以不写;

-v参数表示显示输出结果,r表示保持属性,t表示保持时间,L表示软link视作普通文件。 
–delete 是指如果Server端删除了一文件,那客户端也相应把这一文件删除,保持真正的一致 


./rsync_log.sh 可手动执行是否正确(注:如果无法自动补齐文件名,说明无可执行文件;如果是脚本调用的话并不需要执行权限。)


 wKioL1VZ5BTC82cYAACgg0W0gFw586.jpg 

错误原因:服务端未开启服务;


 wKiom1VZ4rLhSC17AABhybLsh0Y168.jpg

错误原因:客户端密码文件需设置为600;(或700,但未测试700)


 wKiom1VZ4uqwN6FKAACBXyHTqsA011.jpg

可能错误原因:1、两边密码是否匹配;

              2、服务端密码文件中要带上用户名、客户端的不用;

              3服务端的密码文件是否设置为600


wKiom1VZ43WBugvfAABYxmQv098777.jpg 

错误原因:1目录不存在;

          2、调用的配置文件中的路径属性名称是否写错;

 wKioL1VZ6STgw7dmAAD_Ck_uurc447.jpg错误原因:

/etc/rsyncd.conf配置文件中有错误,如uid = rsync写成了d = rsync.请仔细检查

 

wKiom1VZ58CwQqA8AAEzbxuOizE449.jpg 错误原因:权限不够,必须保证服务端目录的权限不低于客户端(发送方);

 

注:修改配置文件不需要重启服务.

#查看错误日志

tail -f /var/log/rsyncd.log

 

 8.定时任务,调用脚本文件。

crontab -e (编辑文件,输入以下内容,自动定义规则)

1,20,40 * * * * /root/rsync_log.sh>/dev/null

  

crontab -l (查看定时任务)


注意事项:

1.密码文件两边都有,注意目录

2.两个服务器文件目录的权限要一致;起码保证服务端目录的权限不低于客户端(发送方);