利用rsync+inotify搭建实时同步系统

系统环境(本例只列举一个服务节点):

内容发布节点server1:192.168.1.154

服务节点    c1:192.168.1.148

C1:
#安装配置rsync
[[email protected] ~]# yum install rsync -y
[[email protected] ~]#vim /etc/rsyncd.conf
uid = nobody
gid = nobody
ignore errors
read only = no
write only = no
list = false
use chroot = no
max connections =10
strict modes = yes
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
                                        #全局配置区域要和模块区域最好用空行分开
[C1]
path = /tongbu
comment = tongbu  file
hosts allow = 192.168.1.154
hosts deny = *
uid = root
gid = root
auth users = user1
secrets file = /etc/user1.pass
[[email protected] ~]#mkdir /tongbu
[[email protected] ~]#cat /etc/user1.pass 
user1:123456
[[email protected] ~]# rsync --daemon
[[email protected] ~]# lsof -i:873
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rsync   1578 root    3u  IPv4  13354      0t0  TCP *:rsync (LISTEN)
rsync   1578 root    5u  IPv6  13355      0t0  TCP *:rsync (LISTEN)
[[email protected] ~]#echo "/usr/bin/rsync --daemon" >> /etc/rc.local

server1:
#安装inotify和rsync
[[email protected] ~]# uname -r   #内核版本 >=2.6.13                
2.6.32-358.el6.x86_64     
[[email protected] ~]# ll /proc/sys/fs/inotify/
total 0
-rw-r--r-- 1 root root 0 Aug 25 15:15 max_queued_events
-rw-r--r-- 1 root root 0 Aug 25 15:15 max_user_instances
-rw-r--r-- 1 root root 0 Aug 25 15:15 max_user_watches
[[email protected] ~]# tar -xf inotify-tools-3.14.tar.gz
[[email protected] ~]#cd inotify-tools-3.14
[[email protected] ~]#cd inotify-tools-3.14
[[email protected] inotify-tools-3.14]# ./configure &&make &&make install
[[email protected] ~]# inotifywa         #生成两个命令表示安装成功
inotifywait   inotifywatch
   inotifywait是一个监控等待事件,可以配合shell脚本使用,参数:
       -m,即“--monitor”,表示始终保持事件监听状态。
       -r,即“--recursive”,表示递归查询目录。
       -q,即“--quiet”,表示打印出监控事件。
       -e,即“--event”,通过此参数可以指定要监控的事件,常见的事件有modify,delete、
       create和attrib等。
[[email protected] ~]#yum install rsync -y
[[email protected] ~]# cat /etc/user1.pass 
123456
[[email protected] ~]#mkdir /tongbu11
[[email protected]server1 shells]# vim inotifyrsync.sh 

#!/bin/bash
host=192.168.1.148
src=/tongbu11
passwordF="/etc/user1.pass"
dst=C1
user=user1
inotifywait="/usr/local/bin/inotifywait"
$inotifywait -mrq --timefmt ‘%d/%m/%y %H:%M‘ --format ‘%T %w%f%e‘ -e         modify,delete,create,attrib $src | while read files;do
                /usr/bin/rsync -vzrtopg --delete --progress --password-file=$passwordF $src [email protected]$host::$dst
                echo "${files} was rsynced" >> /tmp/rsyncd.log 2>&1
        done
脚本中相关参数:
    --timefmt:指定时间的输出格式。
    --format:指定变化文件的详细信息。
[[email protected] shells]#chmod +x inotifyrsync.sh
[[email protected] shells]#./inotifyrsync.sh &
[[email protected] shells]#echo "/shells/inotifyrsync.sh &" >> /etc/rc.local

至此完成所有配置,可以再sever1的/tongbu11目录下添加、删除或修改某个文件,然后到C1中的/tongbu目录中查看文件是否随server1发布目录的文件变化而变化。如果发生同步,则说明配置成功。

时间: 2024-11-11 03:54:06

利用rsync+inotify搭建实时同步系统的相关文章

rsync+inotify搭建实时同步系统

Rsync 优点 rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期地备份文件服务器数据到远程服务器上,对本地磁盘定期进行数据镜像等. Rsync 不足 随着应用系统规模的不断扩大,对数据的安全性和可靠性提出了更高的要求,rsync便暴露出了很多不足之处.首先,rsync同步数据时,需要扫描所有文件后进行比对,然后进行差量传输.如果文件数量达到了百万量级及以上时,扫描文件就非常耗费时间,有时还会出现只是很少一部分数据发生了变化,因

中原六仔平台搭建实时同步系统

Rsync 优点中原六仔平台搭建Q1446595067 rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期地备份文件服务器数据到远程服务器上,对本地磁盘定期进行数据镜像等.Rsync 不足 随着应用系统规模的不断扩大,对数据的安全性和可靠性提出了更高的要求,rsync便暴露出了很多不足之处.首先,rsync同步数据时,需要扫描所有文件后进行比对,然后进行差量传输.如果文件数量达到了百万量级及以上时,扫描文件就非常耗费时间,有时还会

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

CentOS6.4_64位下搭建Rsync+Inotify实现实时同步 rsync是linux下的文件同步服务,功能简单来说就是服务端打开873端口,客户端连接这个端口,并对服务器端配置的目录进行同步,可以理解为客户端比对服务器端资源后,对增量或者差异的数据进行增删改操作,功能支持上传(推送)或下载(获取)比对,也就是远程数据比对本地数据而后对远程数据进行增删改操作,以及本地数据比对远程数据然后对本地数据进行增删改操作. centos6.4下默认已经安装,只需保证依赖服务xinetd开启即可.

利用rsync+inotify实现数据实时同步脚本文件

将代码放在Server端,实现其它web服务器同步.首先创建rsync.shell,rsync.shell代码如下: #!/bin/bash host1=133.96.7.100 host2=133.96.7.101 host3=133.96.7.102 src=/data/www/ dst1=web1 dst2=web2 dst3=web3 user1=web1 user2=web2 user3=web3 /usr/local/inotify/bin/inotifywait -mrq --ti

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

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

Ubuntu 下rsync+inotify实现实时文件同步

rsync+inotify实现实时文件同步 一.rsync的优点与不足 与传统的cp.tar备份方式相比,rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等. 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足,首先,rsync同步数据时,需要扫描所有文件后进行比对,进行差量传输.如果文件数量达到了百万甚

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

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

rsync + inotify 数据实时同步

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

利用rsync+inotify实现数据同步

利用rsync+inotify实现数据同步 一.rsync概念: rsync是Linux系统下文件同步可数据传输的工具,采用rsync算法使客户机与服务器,主服务器与 备份服务器数据同步.rsync也能实现中断后恢复传输.rsync支持增量备份. 二.rsync的模式: 1.本地模式. 2.远程shell模式 3.查询模式 4.C/S模式 安装rsync: tar xvf rsync-3.0.9.tar.gz cd rsync-3.0.9 ./configure make && make