rsync+inotify实现文件实时同步

一.使用rsync+inotify实现实时同步。

目标机器:parking/data/x/fs_data

源机器:ifm1:/data/x/fs

安装rsync

源机器安装inotify-tools

 

在目标机器上编辑配置/etc/rsync.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 = *

在源机器上安装inotify-tools工具;并创建inotify_bak.sh脚本:

#!/bin/bash
src=/data/x/fs/
/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 10.6.20.43::www/

     echo "  ${file} was rsynced" >>/var/log/rsync.log2>&1
done

注意:这里的 www 是在目标服务器/etc/rsyncd.conf里配置的模块名称:[www]

赋予执行权限: chmod+x  inotify_bak.sh

 

4.启动

  目标服务器:先启动rsync后台服务:/usr/bin/rsync --daemon

  来源服务器:执行inotify_bak.sh & 


5.
测试:

  在来源服务器目录中新建目录和文件,inotify_bak.sh脚本会检测到,然后同步到目标服务器的相关目录下

 
  
查看日志文件:/opt/soft/log/rsync.log 命令如下:观察实时同步的情况。

  tail -f  /opt/soft/log/rsync.log

 


你可能感兴趣的:(rsync,inotify,实时同步)