rsync+inotify 实现双向实时同步

本文详细介绍了如何通过rsync和inotify工具实现双向实时文件同步。首先,安装并配置rsync服务,包括设置密码文件、编辑rsyncd.conf以及启动xinetd服务。接着,配置了inotify以监听文件系统变动,并在文件发生修改、创建或删除时触发rsync进行同步。最后,给出了一个简单的shell脚本来启动inotifywait监控,并在事件发生时执行rsync同步到远程服务器。通过这种方法,可以在多台服务器之间保持文件系统的实时一致。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装rsync 

#yum install  -y xinetd

#yum install -y rsync

#vim /etc/xinetd.d/rsync

启动XINETD

#service xinetd start

Starting xinetd:                                           [  OK  ]

#chkconfig xinetd on

#netstat -tlunp |grep 873    查看端口

tcp        0      0 :::873                      :::*                        LISTEN      8831/xinetd

 

配置密码文件:rsync被同步端配置

A主机上配置    再B上同步

vim /etc/rsyncd.conf

uid=root
gid=root
use chroot=no
max connections=10
log file=/home/logs/rsync/rsyncd.log
pid file=/home/logs/rsync/rsyncd.pid
lock file= /var/run/rsync.lock


[family]
path=/home/mengc
comment=prd
ignore errors
hosts allow =    你要同步到的主机地址
read only=yes
list= no

 

 

#vi ~/.ssh/known_hosts   解决ssh 无法登陆的问题
 
#getenforce(查看selinux状态)
#setenforce 0(修改为允许模式)
最后记得修改配置文件/etc/sysconfig/selinux,要不然下次重启会回退。https://blog.youkuaiyun.com/baiwz/article/details/32339049
 
[root@localhost mengc]# /usr/local/bin/inotifywait -mrp -- timefmt --timefmt '%Y/%m/%d-%H:%M:%S' --format '%T %w %f' -e modify,create,delete,attrib /home/mengc
/usr/local/bin/inotifywait: error while loading shared libraries: libinotifytools.so.0: cannot open shared object file: No such file or directory

有很多的so会存放在/usr/local/lib这个目录底下,去这个目录底下找,果然发现自己所需要的.so文件。

所以,在/etc/ld.so.conf中加入/usr/local/lib这一行,保存之后,再运行:/sbin/ldconfig –v更新一下配置即可。

 

 

 

 

11主机上配置

uid=root
gid=root
use chroot=yes
max connections=10
log file=/home/logs/rsync/rsyncd.log
pid file=/home/logs/rsync/rsyncd.pid
lock file=/var/run/rsync.lock


[family11]
path=/home/work/local/webapps/webapp-family/
comment=family11
ignore errors
hosts allow = IP
read only=false
list=no

 

在12主机上同步 /usr/bin/rsync -avptgo --delete --progress /home/work/local/webapps/webapp-family root@IP::family11

 

配置inotify

[root@wcc-vm-family-3711 software]# cd inotify-tools-3.13
[root@wcc-vm-family-3711 inotify-tools-3.13]# ls
aclocal.m4  AUTHORS  ChangeLog  config.guess  config.h.in  config.sub  configure  configure.ac  COPYING  depcomp  INSTALL  install-sh  libinotifytools  ltmain.sh  Makefile.am  Makefile.in  man  missing  NEWS  README  src
[root@wcc-vm-family-3711 inotify-tools-3.13]# ./configure

[root@wcc-vm-family-3711 inotify-tools-3.13]# make && make install

 

#!/bin/sh
/usr/local/bin/inotifywait -mrq --timefmt '%Y/%m/%d-%H:%M:%S' --format '%T %w%f%e' -e modify,create,delete,attrib /home/work/local/webapps/webapp-family | while read date time dir file;do

/usr/bin/rsync -avptgo --delete --progress /home/work/local/webapps/webapp-family root@IP::family12
done

 

nohup sh /home/work/local/webapps/inotify.sh &

--使用nohup挂起到后台执行,终端关闭,这个进程也不会被关闭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值