本文介绍rysnc与inotify同步两个主机的目录,使用RHEL6.6版本。
rsync既remote sync,是UNIX类系统文件同步和数据传输工具,能实现客户端和远程服务器端的文件同步,它采用的是rsync算法,它比较传输源文件和目标文件有变更的部分进行传送。
rsync的一些特性
1>增量数据同步,传输效率搞
2>镜像保存整个目录树和文件系统
3>保留文件属性,时间戳等。
4>支持加密传输
inotify是一种高效率、细粒度、异步的文件系统监控机制。它监控文件系统,并且及时向第三方软件(如rsync)发出相关的删、读、写操作等。linux内核2.6.13版本开始支持inotify。利用这个内核接口,第三方软件如inotify-tools可以监控文件系统下文件的变化情况。
案例演示:
监控192.168.1.7的/var/www/html目录,当目录内容有变化,立即将其内容同步到192.168.1.8的/var/www/html目录。
主机:192.168.1.8
系统默认已安装rsync,不需手动安装。但没有提供配置文件,需手动建立。
编辑/etc/rsyncd.conf
uid=nobody gid=nobody use chroot = no max connections =10 strict modes = yes pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log [xiaoming] path = /var/www/html/ comment = xiaoming file ignore errors read only = no write only = no host allow = 192.168.1.7 host deny = * list = false uid = root gid = root auth user = xiaobai secrets file = /etc/server.pass
# useradd xiaobai # echo 123456 | passwd xiaobai --stdin
启动rsync守护进程
# rysnc --daemon
主机:192.168.1.7
安装inotify-tools
# yum install inotify-tools
查看生成了那些文件
# rpm -ql inotify-tools /usr/bin/inotifywait /usr/bin/inotifywatch /usr/lib64/libinotifytools.so.0 /usr/lib64/libinotifytools.so.0.4.1 /usr/share/doc/inotify-tools-3.14 ......
inotifywait使用内核inotify接口等待文件的变化,时候使用shell脚本来实现。
-m,--monitor 始终保持事件的坚听,默认是在一个事件发生后退出。
-r ,--recursive 递归监控目录
-q,--quiet 在屏幕显示监控事件
-e,--event 制定要监控的事件,如modify、delete、create、access、attrib等
inotifywatch收集被监控的文件系统统计数据。
编辑脚本/root/rsync.sh
#!/bin/bash host=192.168.1.8 src=/var/www/html user=xiaobai dst=xiaoming /usr/bin/inotifywait -mrq --timefmt‘%d/%m/%y %H:%M‘ --format ‘%T %w%f%e‘ -e modify,delete,create,attrib $src | while read files do /usr/bin/rsync -vzrtopg --delete --progress--password-file=/etc/server.pass $src $user@$host::$dst echo "${files} was rsynced" >> /tmp/rsync.log2>&1 done
编辑/etc/server.pass 123456 # chmod 600 /etc/server.pass
放入后台执行
# bash rsync.sh &
此时,在192.168.1.7主机/var/www/html目录变更文件,192.168.1.8会立即同步。
本文出自 “在路上” 博客,请务必保留此出处http://mingxiao.blog.51cto.com/8124243/1641385
原文地址:http://mingxiao.blog.51cto.com/8124243/1641385