rsync+inotify实时同步数据

 1.安装软件

2台server

一台安装rsync,另一台安装inotify

yum install -y rsync

下载inetify

http://inotify-tools.sourceforge.net

解压 && configure && make && make install

2.配置rsync

开启rsync

vim /etc/xinetd.d/rsync

disable = no

编写配置文件

vim /etc/rsyncd.conf

 

 

uid=nobody

gid=nobody

user chroot=no

max connections=200

timeout=600

pid file=/var/run/rsyncd.pid

lock file=/var/run/rsyncd.lock

log file=/var/log/rsyncd.log

 

[test]

path=/test

ignore errors

read only=no

list=no

hosts allow=192.168.1.0/255.255.255.0

auth users=test

secrets file=/root/rsyncd_passwd

 

创建密码文件

echo 'test:test' >> /root/rsyncd_passwd

 

客户端出已经可以同步了,设置客户端密码文件

echo 'test' > /root/rsyncd_passwd

rsync -av --delete [email protected]::test /test --password-file=/root/rsyncd_passwd

 

3.编写inotify监控脚本

当本地有改动时,触发rsync进行同步达到实时同步的效果(不适用于大数据量)

vim /root/rsync.sh

 

 

#!/bin/bash

src=/test

des=test

ip=192.168.70.173

/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f %e' -e modify,delete,create,attrib $src | while read file

        do

                rsync -av --delete $src test@$ip::$des --password-file=/root/rsy

ncd_passwd

                echo "$file was rsynced" >> rsync.log 2>&1

        done

 

在inotify服务器上启动文件中加入脚本

echo "sh /root/rsync.sh &" >> /etc/rc.local

注意保持权限正确,否则可能导致同步失败。

inotifywait监控时间参数:

-m 事件监听

-r 递归查询目录

-q 打印出监控事件

-e 指定监控的事件

--timefmt 指定时间显示格式

%d日 %m月 %y年 %H时 %M分

--format 指定输出信息的格式

 %T事件 %w路径名 %f文件名 %e事件

 

你可能感兴趣的:(rsync,inotify)