Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1129580
  • 博文数量: 221
  • 博客积分: 10152
  • 博客等级: 上将
  • 技术积分: 1518
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-22 10:42
文章分类

全部博文(221)

文章存档

2018年(1)

2015年(6)

2014年(3)

2013年(4)

2012年(1)

2011年(5)

2010年(14)

2009年(10)

2008年(28)

2007年(33)

2006年(114)

2005年(2)

我的朋友

分类: 网络与安全

2008-04-22 11:59:05

#!/bin/sh

basedir="/home/wwwroot/"
inotifywait -mq --timefmt '%d/%m/%y %H:%M' --format '%T %w' \
 -e close_write --fromfile filecheck | while read date time file; do
    project=`echo ${file} | sed -e 's/\/home\/wwwroot\///' -e 's/\/abc//'`
    cd ${basedir}
    for host in `cat /tmp/${project}`; do
    rsync -aRz --delete ${file#${basedir}} ${host}::rsynctest/ && \
    echo "At ${time} on ${date}, project ${project} was updated to ${host}"
    done
done

变量project为网站项目,对应虚拟主机DocumentRoot,同时也指定该项目包含的所有主机。
filecheck为每个项目对应触发同步的文件,通过检测该文件中定义检测的文件名的变化来触发对应的同步。


注意:inotify在gentoo上的最新版本是3.12,这个版本有bug,需要自己下载安装3.13。

其它linux操作系统也可以下载3.13并安装。
下载地址:
阅读(2010) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~