码迷,mamicode.com
首页 > 其他好文 > 详细

inotify+rsync

时间:2015-08-06 18:50:05      阅读:272      评论:0      收藏:0      [点我收藏+]

标签:rsync

servre1:10.1.1.88

server2:10.1.1.82


需要让server2实时同步server1上的代码,


server1 上操作:

1.安装inotify

tar -zxvf inotify-tools-3.14.tar.gz 

./configure && make && make install

2.链接库

64 位系统安装完毕后,报错,找不到库文件,需要做链接

ln -s /usr/local/lib/libinotifytools.so.0 /usr/lib64/libinotifytools.so.0

3.配置rsync+ssh

此处略过,ssh 做互相认证

4.配置脚本

#!/bin/bash

INOT=/usr/local/bin/inotifywait

RSYNC=/usr/bin/rsync

SRC=/opt/wwwroot/

DST=/opt/wwwroot/

DST_IP=10.1.1.82

USER=root


#-- COMMAND --#

$INOT -mr --timefmt ‘%d/%m/%y%H:%M‘ --format ‘%T%w%f‘ -e modify,delete,create,attrib $SRC | while read file 

do

      $RSYNC -auvz -e ‘ssh -p 22‘ --delete $SRC $USER@$DST_IP:$DST

done


#--- END --#

5.执行脚本

nohup sh rsync_inoti.sh &


附加:

inotifywait

语法:

inotifywait [-hcmrq] [-e ] [-t ] [--format ] [--timefmt ] [ ... ]

参数:

-h,–help

输出帮助信息

@

排除不需要监视的文件,可以是相对路径,也可以是绝对路径。

–fromfile 

从文件读取需要监视的文件或排除的文件,一个文件一行,排除的文件以@开头。

-m, –monitor

接收到一个事情而不退出,无限期地执行。默认的行为是接收到一个事情后立即退出。

-d, –daemon

跟–monitor一样,除了是在后台运行,需要指定–outfile把事情输出到一个文件。也意味着使用了–syslog。

-o, –outfile 

输出事情到一个文件而不是标准输出。

-s, –syslog

输出错误信息到系统日志

-r, –recursive

监视一个目录下的所有子目录。

-q, –quiet

指定一次,不会输出详细信息,指定二次,除了致命错误,不会输出任何信息。

–exclude 

正则匹配需要排除的文件,大小写敏感。

–excludei 

正则匹配需要排除的文件,忽略大小写。

-t , –timeout 

设置超时时间,如果为0,则无限期地执行下去。

-e , –event 

指定监视的事件。

-c, –csv

输出csv格式。

–timefmt 

指定时间格式,用于–format选项中的%T格式。

–format 

指定输出格式。

%w 表示发生事件的目录

%f 表示发生事件的文件

%e 表示发生的事件

%Xe 事件以“X”分隔

%T 使用由–timefmt定义的时间格式


inotifywatch

语法:

inotifywatch [-hvzrqf] [-e ] [-t ] [-a ] [-d ] [ ... ]

参数:

-h, –help

输出帮助信息

-v, –verbose

输出详细信息

@

排除不需要监视的文件,可以是相对路径,也可以是绝对路径。

–fromfile 

从文件读取需要监视的文件或排除的文件,一个文件一行,排除的文件以@开头。

-z, –zero

输出表格的行和列,即使元素为空

–exclude 

正则匹配需要排除的文件,大小写敏感。

–excludei 

正则匹配需要排除的文件,忽略大小写。

-r, –recursive

监视一个目录下的所有子目录。

-t , –timeout 

设置超时时间

-e , –event 

只监听指定的事件。

-a , –ascending 

以指定事件升序排列。

-d , –descending 

以指定事件降序排列。


可监听事件

access文件读取

modify文件更改。

attrib文件属性更改,如权限,时间戳等。

close_write以可写模式打开的文件被关闭,不代表此文件一定已经写入数据。

close_nowrite以只读模式打开的文件被关闭。

close文件被关闭,不管它是如何打开的。

open文件打开。

moved_to一个文件或目录移动到监听的目录,即使是在同一目录内移动,此事件也触发。

moved_from一个文件或目录移出监听的目录,即使是在同一目录内移动,此事件也触发。

move包括moved_to和 moved_from

move_self文件或目录被移除,之后不再监听此文件或目录。

create文件或目录创建

delete文件或目录删除

delete_self文件或目录移除,之后不再监听此文件或目录

unmount文件系统取消挂载,之后不再监听此文件系统


本文出自 “运维菜鸟” 博客,请务必保留此出处http://ckl893.blog.51cto.com/8827818/1682242

inotify+rsync

标签:rsync

原文地址:http://ckl893.blog.51cto.com/8827818/1682242

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!