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) |