使用rsync+inotify配置触发式(实时)远程同步(2)

来源:LinuxIDC.com 作者:LinuxIDC.com
  将此脚本写入到/etc/rc.local 系统自动加载即可.

5.测试

server1服务器的/disk目录下创建文件或目录,到server2/disk目录下可以看到即OK

Server1# cd  /disk

Server1# touch aaa

Server2# cd /disk

Server2# ls

看到aaa文件即OK!!!!

 

 

三. 脚本相关注解:
   
m 是保持一直监听
   
r 是递归查看目录
   
q 是打印出事件~
   
e create,move,delete,modify
   
监听 创建 移动 删除 写入 事件


    rsync -aHqzt $SRC $DST

    -a
存档模式
    -H
保存硬连接
    -q
制止非错误信息
    -z
压缩文件数据在传输
    -t
维护修改时间
    -delete
删除于多余文件

当要排出同步某个目录时,为rsync添加--exculde=PATTERN参数,注意,路径是相对路径。详细查看man rsync
当要排除都某个目录的事件监控的处理时,为inotifywait添加--exclude--excludei参数。详细查看
man inotifywait

另:

/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format  '%T %w%f' /
-e modify,delete,create,attrib /
${src} /
上面的命令返回的值类似于:
10/03/09 15:31 /wwwpic/1
3个返回值做为参数传给read,关于此处,有人是这样写的:
inotifywait -mrq -e create,move,delete,modify $SRC | while read D E F;do
细化了返回值。



说明: 当文件系统发现指定目录下有如上的条件的时候就触发相应的指令,是一种主动告之的而非我用循环比较目录下的文件的异动,该程序

运行时,更改目录内的文件时系统内核会发送一个信号,这个信号会触发运行rsync命令,这时会同步源目录和目标目录。
--timefmt
:指定输出时的输出格式
   --format
  '%T %w%f'指定输出的格式

.关于inotify介绍
Inotify
是文件系统事件监控机制,作为 dnotify 的有效替代。dnotify 是较早内核支持的文件监控机制。Inotify 是一种强大的、细粒度的

、异步的机制,它满足各种各样的文件监控需要,不仅限于安全和性能

inotify
可以监视的文件系统事件包括:
IN_ACCESS
,即文件被访问
IN_MODIFY
,文件被 write
IN_ATTRIB
,文件属性被修改,如 chmodchowntouch

IN_CLOSE_WRITE
,可写文件被 close
IN_CLOSE_NOWRITE
,不可写文件被
close
IN_OPEN
,文件被
open
IN_MOVED_FROM
,文件被移走,
mv
IN_MOVED_TO
,文件被移来,如 mv
cp
IN_CREATE
,创建新文件

IN_DELETE
,文件被删除,如 rm
IN_DELETE_SELF
,自删除,即一个可执行文件在执行时删除自己

IN_MOVE_SELF
,自移动,即一个可执行文件在执行时移动自己
IN_UNMOUNT
,宿主文件系统被 umount
IN_CLOSE
,文件被关闭,等同于
(IN_CLOSE_WRITE | IN_CLOSE_NOWRITE)
IN_MOVE
,文件被移动,等同于
(IN_MOVED_FROM | IN_MOVED_TO)
注:上面所说的文件也包括目录。
 

以上设置经过虚拟机centos5.3环境测试通过


时间:2011-11-28 23:00 来源:LinuxIDC.com 作者:LinuxIDC.com 原文链接

好文,顶一下
(2)
100%
文章真差,踩一下
(0)
0%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
论坛精华
一周热点
无觅相关文章插件,快速提升流量