> CentOS > CentOS服务器 > 文件同步 >

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://unison@192.168.10.4//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

(责任编辑:IT)