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

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 = root

gid = root

use chroot = no

max connections = 10

strict modes = yes

port = 873

address = 192.168.1.13

[mail]

path = /home/domains/

comment = mirror for extmail

ignore errors

read only = no

list = no

auth users = user

secrets file = /etc/rsync.pas

hosts allow = 192.168.1.14

hosts deny = 0.0.0.0/0

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsyncd.log

参数详解

read only = no   #表示可写

port =873       # 端口

4.配置/etc/rsync.pas

在服务器端,必须加入登陆名和密码,在client上,只需要输入密码

[vi /etc/rsync.pas]

user:123456

chmod 600 /etc/rsync.pas  #防止非root帐号修改!

6.启动rsync

rsync --daemon --config=/etc/rsyncd.conf

client端:

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 [email protected]::mail  /home/domains]

上传(推送):

[rsync -auzv --progress --delete  --password-file=/etc/rsync.pas /home/domains/* [email protected]::mail]

若使用的不是 --port 873 #配置文件中指定的端口号;需要添加 --port参数

!!!!!参数详解!!!!!

user@192.168.1.13::mail /home/domains

user对应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" [email protected]:/home/domains/ /home/domains/ --port 873

上传(推送):

# rsync -auzvP --delete -e "ssh -p22" /home/domains/ [email protected]:/home/domains/ --port 873

注: --progress 可以简写为 -P

5.定时计划任务:

在crontab中增加一条命令,设置每分钟自动执行一次。

# crontab -e

----------------------

* * * * * /usr/bin/rsync  -auzv --progress --delete  --password-file=/etc/rsync.pas [email protected]::mail/home/domains

---------------------

6.为了安全,若系统启用防火墙,建议增加一条iptables命令

# iptables -A INPUT -P tcp --dport:873 -j ACCEPT

7.如果需要多个不同目录支持同步,再增加一个

[MYSQL]

path = /usr/local/mysql/data

comment = mysql mirror

ignore errors

read only = yes

list = no

auth users = root

secrets file = /etc/rsync.pas

hosts allow = 172.24.40.50

hosts deny = 0.0.0.0/0

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsyncd.log

重启rsync

# pkill rsync

# rsync --daemon --config=/etc/rsyncd.conf

然后在客户端输入命令同步

rsync  -auzv --progress --delete  --password-file=/etc/rsync.pas [email protected]::MYSQL /usr/local/mysql/data

-----------------大功告成-----------------------------

注:配置过程问题:

问题1:

在client上遇到问题:

rsync -auzv --progress --password-file=/etc/rsync.pas [email protected]::backup /home/

rsync: could not open password file "/etc/rsync.pas": No such file or directory (2)

Password:

@ERROR: auth failed on module backup

rsync 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 [email protected]::backup /home/

@ERROR: auth failed on module backup

rsync 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 [email protected]::backup /home/

@ERROR: chdir failed

rsync 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)注意查看同步的目录权限是否为755

2、time out

rsync: 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.conf

4、磁盘空间满

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 directory

xnetid查找的配置文件位置默认是/etc下,根据具体情况创建软链接。例如:

ln -s /etc/rsyncd/rsyncd.conf /etc/rsyncd.conf

或者更改指定默认的配置文件路径,在/etc/xinetd.d/rsync配置文件中

时间: 2024-10-15 13:58:32

CentOS6.4_64位下搭建Rsync+Inotify实现实时同步的相关文章

rsync的简单介绍及rsync+inotify实现实时同步更新

Rsync的简单介绍及rsync+inotify实现实时同步更新 rsync是类unix系统下的数据镜像备份工具--remotesync.一款快速增量备份工具 Remote Sync,远程同步支持本地复制,或者与其他SSH.rsync主机同步.Rsync是超级进程来管理的,服务端口为873. 特点: 1.可以镜像保存整个目录树或文件系统: 2.有较高的数据传输效率: 3.可借助于SSH实现安全数据传输: 4. 支持匿名传输 工作模式: 1.shell模式,也称作本地模式 2.远程shell模式,

第三十四天-rsync+inotify实现实时同步案例

推荐: Rsync结合Inotify 实时同步配置 rsync+inotify实现实时同步案例 rsync+inotify实现多台服务器之间数据实时同步 Linux下Rsync+Inotify-tools实现数据实时同步

linux rsync +inotify 实现 实时同步

前言:     rsync可以实现触发式的文件同步,但是通过crontab守护进程方式进行触发,同步的数据和实际数据会有差异,而inotify可以监控文件系统的各种变化,当文件有任何变动时,就触发rsync同步,这样刚好解决了同步数据的实时性问题. 一.基本环境 系统:CentOS 2.6.32-220.el6.x86_64软件包版本:rsync-3.0.6-12.el6.x86_64                    inotify-tools-3.14 下载链接:百度   inotify

实战:配置rsync+inotify实现实时同步备份

实战:配置rsync+inotify实现实时同步 Linux内核从2.6.13版本开始提供了inotify通知接口,用来监控文件系统的各种变化情况,如文件存取.删除.移动等.利用这一机制,可以非常方便地实现文件异动告警.增量备份,并针对目录或文件的变化及时作出响应. 使用rsync工具与inotify机制相结合,可以实现触发式备份(实时同步),只要原始位置的文档发生变化,则立即启动增量备份操作,否则处于静态等侍状态,这样一来,就避免了按固定周期备份进存在的延迟性.周期过密等问题. inotify

通过rsync+inotify实现实时同步

需求:web服务器未做存储上的HA,为了保证主备服务器上目录及文件能够实时同步,当主服务器宕机时可快速切换到备服务器上,需将主服务器上的某些目录的文件实时同步到备服务器上 那么我选择了rsync+inotify实现实时同步 首先要了解是从哪台服务器同步到哪台服务器,不能弄反了,尤其是生产系统,且在生产系统中,先做测试目录,如果生产服务器上数据量不大,应先做好备份工作 先说环境 OS:linux rhel6.2 x86_64 192.168.10.72 安装rsync 配置rsync.conf19

Rsync+inotify 实现实时同步数据文件

什么是Rsync? rsync可以实现增量备份,配合inotify可以实现时事的数据备份 Rsync的三种工作模式 1)本地备份,相当于 cp 命令 将 /etc/hosts 文件拷贝到 /tmp/ 目录下 rsync -avz /etc/hosts /tmp/ 删除一个目录 先新建一个空目录,然后使用 rsync 命令同步 mkdir /zhao 添加 --delete参数,目录 zhao 为空 rsync --delete /zhao/ /tmp/ 命令解释:以前面的目录为准,前面目录有啥后

rsync+inotify实现实时同步

1.数据同步: A服务器的一个目录同步到B服务器上的一个目录 方法是: 可以在A服务器上把这个目录共享(如ftp,http等),然后B服务器上写shell脚本,用crontab做定时任务下载过来(数据同步不实时) 实时同步 方法是: rsync远程目录实时同步 drbd远程存储实时同步(很老的方案) 共享存储,就是同一个磁盘设备同时被很多人用 分布式存储(云存储) 2.同步.异步和远程同步 sync同步 async异步 rsync 远程同步 这里主要说rsync,在开始之前需要了解以下几个问题:

rsync + inotify 数据实时同步

一.rsync介绍 rsync英文全称为Remote synchronization,从软件的名称就可以看出来,Rsync具有可是本地和远程两台主机之间的数据快速复制同步镜像.远程备份的功能,这个功能类似ssh带的scp命令,但又优先于scp命令的功能,scp每次都是全量拷贝,而rsync可以增量拷贝.当然,Rsync还可以在本地主机的不同分区或目录之间全量及增量的复制数据,这又类似cp命令,但同样也优先于cp命令,cp每次都是全量拷贝,而rsync可以增量拷贝.利用rsync还可以实现删除文件

linux 下rsync+inotify实现实时同步

rsync是类unix系统下的数据镜像备份工具--remote sync,inotify 是一个 Linux特性,它监控文件系统操作,比如读取.写入和创建.两者结合可以实现服务器与客户端之间的文件实时同步. 实验逻辑图 一.安装配置rsync服务 主,备服务器检查是否安装rsync服务,一般情况下系统默认安装 [[email protected] bin]# rpm -qa rsync rsync-3.0.6-6.el5_11 1.首先对rsync-slave进行配置 添加配置rsync的文件,