您的位置:首页 > 其它

部署inotify-tools进行文件自动同步

2014-07-02 16:35 253 查看
转自http://blog.chinaunix.net/uid-25266990-id-3018455.html

创建inotify自动同步脚本
vim inotify_rsync.sh
#!/bin/sh
SRC=/home/rsync/test
DST=rsync@192.168.10.4:/home/rsync/test

/bin/su - rsync
/usr/local/bin/inotifywait -mrq -e modify,delete,create,attrib ${SRC} | while read D E F
do
/usr/bin/rsync -ahqzt --delete $SRC $DST
done

赋予脚本可执行权限
chmod +x inotify_rsync.sh
执行脚本
/root/inotify_rsync.sh &
设置脚本开机自启动
cat "/root/inotify_rsync.sh &" >> /etc/rc.local

#########################################
相关注解如下:
/usr/local/bin/inotifywait -mrq -e modify,delete,create,attrib ${src}
-m 是保持一直监听
-r 是递归查看目录
-q 是打印出事件
-e create,move,delete,modify,attrib 是指 “监听 创建 移动 删除 写入 权限” 事件

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

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

inotifywait 命令产生三个返回值,分别是“日期,时间,文件” 这3个返回值会做为参数传给read,因此脚本中的“while read D E F” 写法细化了返回值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: