码迷,mamicode.com
首页 > 其他好文 > 详细

用rsync进行文件同步

时间:2015-05-19 07:33:30      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:用rsync进行文件同步

实施目的:

实现将文件从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 可手动执行是否正确(注:如果无法自动补齐文件名,说明无可执行文件;如果是脚本调用的话并不需要执行权限。)


 技术分享 

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


 技术分享

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


 技术分享

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

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

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


技术分享 

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

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

 技术分享错误原因:

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

 

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

 

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

#查看错误日志

tail -f /var/log/rsyncd.log

 

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

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

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

  

crontab -l (查看定时任务)


注意事项:

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

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


本文出自 “艺晨光的博客” 博客,谢绝转载!

用rsync进行文件同步

标签:用rsync进行文件同步

原文地址:http://ycgit.blog.51cto.com/8590215/1652514

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!