linux环境下Unison文件双向同步配置
Unison是windows和unix平台下都可使用的文件双向同步工具,它能使网络上的两个文件夹保持双向同步。它能自动处理两份拷贝中没有冲突的部分,有冲突的部分将会显示出来让用户选择更新策略;
在linux环境下进行文件的双向同步,可以选择unison,具体配置过程:
1.配置双机SSH信任
2.在两台机器上分别安装unison
# rpm –ivh unison227-2.27.57-7.el5.2.x86_64.rpm
3.编辑配文件
#vim /root/.unison/default.prf
root = /home/unison/test /*本地同步目录
root =ssh:////home/unison/test/ /*远程主机同步目录
#force =
#ignore =
batch = true
#repeat = 1
#retry = 3
owner = true
group = true
perms = -1
fastcheck = false
rsync = false
sshargs = -C
xferbycopying = true
log = true
logfile =/home/unison/.unison/unison.log
注解如下:force表示会以本地所指定文件夹为标准,将该目录同步到远端。指定force参数就变成了单项同步,类似rsync。对于一个文件在两个同步文件夹中都被修改时,unison是不会去同步的。ignore = Path表示同步时忽略指定目录。batch = true,表示全自动模式,接受缺省动作,并执行。fastcheck=true表示同步时仅通过文件的创建时间来比较,false则比较两地文件的内容。owner = true //保持同步过来的文件属主group = true //保持同步过来的文件组信息
perms = -1 //保持同步过来的文件读写权限repeat = 1 //间隔1秒后,开始新的一次同步检查retry = 3 //失败重试sshargs = -C //使用ssh的压缩传输方式
Unison参数:-auto //接受缺省的动作,然后等待用户确认是否执行。-batch //batch mode,全自动模式,接受缺省动作,并执行。-ignore xxx //增加xxx到忽略列表中-ignorecase [true|false|default] //是否忽略文件名大小写-follow xxx //是否支持对符号连接指向内容的同步xferbycopying = true"-immutable xxx //不变目录,扫描时可以忽略-silent //安静模式-times //同步修改时间-path xxx参数//只同步-path参数指定的子目录以及文件,而非整个目录,-path可以多次出现。
3. 编辑shell脚本 unison
vi /home/unison/unison
#!/bin/sh
#
pid10=`ps-ef|grep /usr/bin/unison|grep -v grep|wc -l`
if [$pid10 -eq 0 ]; then
/usr/bin/unison >/dev/null 2>&1&
fi
exit 0
4.订制任务运行unison,每2分钟或某一个间隔时间就同步一次:
crontab –e
*/2 * * * * /home/unison/unison