rsync+inotify实现实时同步

环境:两台centos,A和B,

过程:在A机装rsync,在B机装rsync和inotify

实现步骤:

1.A机操作:

1)安装rsync---yum install rsync

建配置文件vim /etc/rsync.conf

read only = no
list = yes
uid = root
gid = root
use chroot = no
max connections = 5
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
#模块配置部分
[test]
path = /root/test/
auth users = www
secrets file = /etc/rsyncd.secrets

2)建密码文件

vim /etc/rsyncd.secrets

www:www123

chmod 600 /etc/rsyncd.secrets

3)启动rsync

rsync  --daemon

2.在B机操作

1)安装rsync--yum install rsync

2)建密码文件

vim /etc/rsyncd.secrets

www123

chmod 600 /etc/rsyncd.secrets

3)安装inotify

wget http://pkgs.fedoraproject.org/repo/pkgs/inotify-tools/inotify-tools-3.14.tar.gz/b43d95a0fa8c45f8bab3aec9672cf30c/inotify-tools-3.14.tar.gz

  tar zxvf inotify-tools-3.14.tar.gz 
   cd inotify-tools-3.14
  ls
 ./configure 
    make &make install

安装好之后检查命令inotifywait

可能出错说找不到libinotifytools.so.0,
  这是因为安装的时候库文件libinotifytools.so.0安装在/usr/local/lib/这个目录下
  此时,我们在/usr/lib里建立一个软连接ln -s /usr/local/lib/libinotifytools.so.0就可以了

4)写脚本

vim rsyncd.sh

#!/bin/sh
src=/root/test/
/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format  '%T %w%f'  -e modify,delete,create,attrib  ${src}    | while read  file  
        do
 /usr/bin/rsync -vzrtopg --delete   $src  [email protected]::test --password-file=/etc/rsyncd.secrets
        done

脚本写好之后添加执行权限chmod +x rsyncd.sh
脚本后台运行  nohup  ./rsyncd.sh &

在B机的/root/test/目录下修改,添加,删除文件,在A机相应目录查看是否成功
 

到此,实时同步成功。

在此过程中需要注意问题:防火墙,selinux,修改/etc/rsync.conf后需要重启rsync

 今天在网上看到用sersync进行实时同步更加方便,在机器上测试了一下确实很好,网上写的蛮详细的,这里就贴个地址:

http://www.jiunile.com/%E6%96%87%E4%BB%B6%E5%90%8C%E6%AD%A5-sersync2.html

http://www.jiunile.com/%e6%96%87%e4%bb%b6%e5%90%8c%e6%ad%a5%e4%b9%8bxml%e9%85%8d%e7%bd%ae%e8%af%b4%e6%98%8e.html

 

你可能感兴趣的:(职场,休闲)