#!/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并安装。
下载地址:
阅读(1387) | 评论(0) | 转发(0) |