您的位置:首页 > 其它

采用 unison + inotify 实现文件实时双向同步

2013-08-12 20:09 543 查看
一、基础安装
# tar xvzf ocaml-4.00.1.tar.gz
# ./configure -prefix /usr/local
# make world.opt
# make install

# tar xvzf unison-2.40.102.tar.gz
# make UISTYLE=text
# cp unison /usr/local/bin

# tar xvzf inotify-tools-3.13.tar.gz
# ./configure -prefix=/usr/local/inotify
# make
# make install

=========================================================================================二、配置ssh key信任


=========================================================================================三、配置参数
# mkdir -p /data/logs/unison
# vim /root/.unison/common.prf
batch = true
group = true
owner = true
#path =
perms = -1
silent = true
times = true
#force =
fastcheck = false
links = true
log = true
logfile = /data/logs/unison/unison.log
ignore = Name *.tmp
ignore = Name .unison.*
ignore = Path .unison.*
#repeat = 1
#retry = 3
rsync = false
servercmd = /usr/local/bin/unison
sshargs = -C
sshcmd = /usr/local/bin/ssh
stream = true
ui = text
xferbycopying = true

=========================================================================================
四、实时同步脚本
# vim /usr/local/inotify/unison.sh
#!/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin
LOCAL_DIR="/data/unison_test/"
REMOTE_DIR="/data/unison_test/"
REMOTE_USER="root"
INOTIFY="/usr/local/inotify/bin/inotifywait"
UNISION="/usr/local/bin/unison"
IP_LIST_FILE="/usr/local/inotify/iplist.txt"
ATTRIBUTES="modify,delete,create,attrib"

${INOTIFY} -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e ${ATTRIBUTES} ${LOCAL_DIR} | while read files
do
for IPADDR in `sed '/^$/d' ${IP_LIST_FILE}`
do
${UNISION} common "${LOCAL_DIR}" "ssh://${REMOTE_USER}@${IPADDR}/${REMOTE_DIR}"
done
done

# chmod +x /usr/local/inotify/unison.sh
# cd /usr/local/inotify
# nohup ./unison.sh &

下载地址:

http://www.seas.upenn.edu/~bcpierce/unison//download/releases/stable/

本文出自 “人生理想在于坚持不懈” 博客,请务必保留此出处http://sofar.blog.51cto.com/353572/1271608
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: