rsync + inotify 实现文件目录的实时单向同步

本文介绍了一种在两台Linux服务器之间实现文件实时同步的方法。通过安装rsync服务并配置rsyncd.conf文件,在目标服务器启动rsync守护进程。源服务器安装inotify-tools并创建inotify_bak.sh脚本来监控文件变化,利用rsync命令进行实时同步。

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



linux下两台服务器文件实时同步方案设计和实现
1、源服务器:192.168.1.66,目录/opt/test
   目的服务器:192.168.1.68,目录/opt/bak/test
   
2、yum install rsync
   
3、配置目标服务器 /etc/rsyncd.conf
uid=root
gid=root
use chroot=no
max connections=10
strict modes=yes
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
log file=/var/run/rsyncd.log
[www]
path=/opt/bak/test
comment=analyse
read only=false
hosts allow=*


启动目标服务端:rsync --daemon

4、源服务器安装inotify-tools
   wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
   tar xzf inotify-tools-3.14.tar.gz
   cd inotify-tools-3.14
   ./configure --prefix=/usr/local && make && su -c 'make install'
   
5、源服务器创建脚本
   创建目录/opt/soft/log/rsync.log
   
   inotify_bak.sh
   #!/bin/bash
   src=/opt/test/
   /usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,delete,create,attrib $src |  while read file
   do
      /usr/bin/rsync -arzuq $src 192.168.1.68::www/
      echo "  ${file} was rsynced" >>/opt/soft/log/rsync.log 2>&1
   done
   

   放入后台执行  inotify_bak.sh & 


6、可以从业务逻辑上实现实时双向同步,将图片资源保存在两个不同的目录A1、A2,且目录记录到数据库中,linux1主机A1目录同步linux2主机的A1目录,

linux2主机A2目录同步linux1主机A2目录即可!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值