在企业日常web应用中,某些特殊的数据需要要求保持跟服务器端实时同步,那我们该如何来配置呢?如何来实现呢?这里可以采用rsync+inotify来实现需求。
Inotify 是一个 Linux特性,它监控文件系统操作,比如读取、写入和创建。Inotify 反应灵敏,用法非常简单,并且比cron 任务的繁忙轮询高效得多。
Rsync安装完毕后,需要安装inotify文件检查软件。同时为了同步的时候不需要输入密码,这样可以使用ssh免密钥方式进行同步。
一、安装
下载地址:http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
[code]tar zxf inotify-tools-3.14.tar.gz; cd inotify-tools-3.14
二、配置auto_inotify.sh同步脚本
首先需要将两台服务器免密钥
[code]
ssh-keygen -t rsa -P ”
ssh-copy-id root@192.168.77.73
[/code]
[code]
##本地需要同步的目录###
src=/www/
###远程目录##
des=/www/
ip=192.168.77.73
inotifywait -mrq –timefmt ‘%d/%m/%y-%H:%M’ –format ‘%T %w%f’ -e modify,delete,create,attrib ${src} | while read file
do
rsync -aP –delete $src root@$ip:$des
done
[/code]
在服务器端后台启动该脚本,nohup sh auto_inotify.sh & ,在服务器端目录新建或者删除,客户端都会实时进行相关操作
inotifywait 参数详解:https://www.cnblogs.com/wajika/p/6396748.html