标签:用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 #指定rsync的log输出路径
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 |
uid和gid指明了运行身份(本机上创建该用户,由于40上的文件目录权限都是tomcat所以本机创建tomcat用户),chroot表示连接后自动切换目录,read only=false是允许别的客户端向本机的服务器端上传。host allow和deny是限制连接地址。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 |
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视作普通文件。 |
./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进行文件同步
原文地址:http://ycgit.blog.51cto.com/8590215/1652514