您的位置:首页 > 运维架构 > Linux

CentOS6.4_64位下搭建Rsync+Inotify实现实时同步

2015-07-01 22:28 645 查看

CentOS6.4_64位下搭建Rsync+Inotify实现实时同步

rsync是linux下的文件同步服务,功能简单来说就是服务端打开873端口,客户端连接这个端口,并对服务器端配置的目录进行同步,可以理解为客户端比对服务器端资源后,对增量或者差异的数据进行增删改操作,功能支持上传(推送)或下载(获取)比对,也就是远程数据比对本地数据而后对远程数据进行增删改操作,以及本地数据比对远程数据然后对本地数据进行增删改操作。 centos6.4下默认已经安装,只需保证依赖服务xinetd开启即可。环境搭建:一、首先关闭selinux与iptables[vi /etc/sysconfig/selinux]把[SELINUX=enforcing]修改为[SELINUX=disabled]修改selinux的配置需要重启服务器使其配置生效[service iptables stop][chkconfig iptables off]二、配置分为2个部分server端:1.安装rsync(centos6.4默认已安装)[yum install rsync -y][yum install xinetd -y]2.启动rsync依赖服务[/etc/init.d/xinetd start][chkconfig xinetd on]3.配置/etc/rsyncd.conf[vi /etc/rsyncd.conf]uid = rootgid = rootuse chroot = nomax connections = 10strict modes = yesport = 873address = 192.168.1.13[mail]path = /home/domains/comment = mirror for extmailignore errorsread only = nolist = noauth users = usersecrets file = /etc/rsync.pashosts allow = 192.168.1.14hosts deny = 0.0.0.0/0pid file = /var/run/rsyncd.pidlock file = /var/run/rsync.locklog file = /var/log/rsyncd.log参数详解read only = no #表示可写port =873 # 端口
4.配置/etc/rsync.pas 在服务器端,必须加入登陆名和密码,在client上,只需要输入密码[vi /etc/rsync.pas]user:123456chmod 600 /etc/rsync.pas #防止非root帐号修改!6.启动rsyncrsync --daemon --config=/etc/rsyncd.confclient端:1.安装rsync(centos6.4默认已安装)[yum install rsync -y][yum install xinetd -y]2.启动rsync依赖服务[/etc/init.d/xinetd start][chkconfig xinetd on]3.客户端必须配置密码文件[vi /etc/rsync.pas]123456 #和服务器的用户密码一致!!chmod 600 /etc/rsync.pas #同服务器↑4.然后在客户端输入命令同步:下载(获取):[rsync -auzv --progress --delete --password-file=/etc/rsync.pas user@192.168.1.13::mail /home/domains]上传(推送):[rsync -auzv --progress --delete --password-file=/etc/rsync.pas /home/domains/* user@192.168.1.13::mail] 若使用的不是 --port 873 #配置文件中指定的端口号;需要添加 --port参数!!!!!参数详解!!!!!user@192.168.1.13::mail /home/domainsuser对应server端配置文件的auth users = user 和server端/etc/rsync.pas内用户名:密码(user:123456)192.168.1.13对应服务端IP地址mail对应server端配置文件的[mail]/home/domains表示client端同步server端数据后数据保存在client端目录的路径@与::均起到字符连接功能----------------按照上面的格式加密重写(完整格式):下载(获取):# rsync -auzvP --delete -e "ssh -p22" root@192.168.1.13:/home/domains/ /home/domains/ --port 873上传(推送):# rsync -auzvP --delete -e "ssh -p22" /home/domains/ root@192.168.1.13:/home/domains/ --port 873注: --progress 可以简写为 -P5.定时计划任务: 在crontab中增加一条命令,设置每分钟自动执行一次。# crontab -e----------------------* * * * * /usr/bin/rsync -auzv --progress --delete --password-file=/etc/rsync.pas user@192.168.1.13::mail/home/domains---------------------6.为了安全,若系统启用防火墙,建议增加一条iptables命令# iptables -A INPUT -P tcp --dport:873 -j ACCEPT7.如果需要多个不同目录支持同步,再增加一个[MYSQL]path = /usr/local/mysql/datacomment = mysql mirrorignore errorsread only = yeslist = noauth users = rootsecrets file = /etc/rsync.pashosts allow = 172.24.40.50hosts deny = 0.0.0.0/0pid file = /var/run/rsyncd.pidlock file = /var/run/rsync.locklog file = /var/log/rsyncd.log重启rsync# pkill rsync# rsync --daemon --config=/etc/rsyncd.conf然后在客户端输入命令同步rsync -auzv --progress --delete --password-file=/etc/rsync.pas user@192.168.1.14::MYSQL /usr/local/mysql/data-----------------大功告成-----------------------------注:配置过程问题:问题1:在client上遇到问题:rsync -auzv --progress --password-file=/etc/rsync.pas root@192.168.133.128::backup /home/rsync: could not open password file "/etc/rsync.pas": No such file or directory (2)Password:@ERROR: auth failed on module backuprsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]遇到这个问题:client端没有设置/etc/rsync.pas这个文件,而在使用rsync命令的时候,加了这个参数--password-file=/etc/rsync.pas问题2:rsync -auzv --progress --password-file=/etc/rsync.pas root@192.168.133.128::backup /home/@ERROR: auth failed on module backuprsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]遇到这个问题:client端已经设置/etc/rsync.pas这个文件,里面也设置了密码111111,和服务器一致,但是服务器段设置有错误,服务器端应该设置/etc/rsync.pas ,里面内容root:111111 ,这里登陆名不可缺少问题3:rsync -auzv --progress --password-file=/etc/rsync.pas root@192.168.133.128::backup /home/@ERROR: chdir failedrsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]遇到这个问题,是因为服务器端的/home/backup 其中backup这个目录并没有设置,所以提示:chdir failed问题4:rsync: write failed on "/home/backup2010/wensong": No space left on device (28)rsync error: error in file IO (code 11) at receiver.c(302) [receiver=3.0.7]rsync: connection unexpectedly closed (2721 bytes received so far) [generator]rsync error: error in rsync protocol data stream (code 12) at io.c(601) [generator=3.0.7]磁盘空间不够,所以无法操作。可以通过df /home/backup2010 来查看可用空间和已用空间问题5:网络收集问题1、权限问题类似如下的提示:rsync: opendir "/kexue" (in dtsChannel) failed: Permission denied (13)注意查看同步的目录权限是否为7552、time outrsync: failed to connect to 203.100.192.66: Connection timed out (110)rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.5]检查服务器的端口netstat –tunlp,远程telnet测试。3、服务未启动rsync: failed to connect to 10.10.10.170: Connection refused (111)rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.5]启动服务:rsync --daemon --config=/etc/rsyncd.conf4、磁盘空间满rsync: recv_generator: mkdir "/teacherclubBackup/rsync……" failed: No space left on device (28)*** Skipping any contents from this failed directory ***5、Ctrl+C或者大量文件rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(544) [receiver=3.0.5]rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(544) [generator=3.0.5]6、xnetid启动rsync: read error: Connection reset by peer (104)rsync error: error in rsync protocol data stream (code 12) at io.c(759) [receiver=3.0.5]查看rsync日志rsync: unable to open configuration file "/etc/rsyncd.conf": No such file or directoryxnetid查找的配置文件位置默认是/etc下,根据具体情况创建软链接。例如:ln -s /etc/rsyncd/rsyncd.conf /etc/rsyncd.conf或者更改指定默认的配置文件路径,在/etc/xinetd.d/rsync配置文件中
本文出自 “江湖笑笑生” 博客,请务必保留此出处http://hashlinux.blog.51cto.com/9647696/1669901
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: