CentOS7.2下unison+inotify实现Web目录双向同步(2)

unison的用法非常灵活和简单,可以通过如下三种方式调用unison。 
第一种方式:”unison profile_name [options]” 
unison默认会读取~/.unison目录下的配置文件”profile_name.prf”。

注意,在这种方式下,命令行中并没有指出要进行同步的两个地址,所以,此种调用unison的方式必须在配置文件profile_name.prf中通过相关的root指令设置同步的路径和同步的参数,如:

#Unison preferences file
root = /tmp/test
root = ssh://root@10.1.0.161//tmp/test/
#force =
#ignore =
batch = true

第二种方式:”unison profile root1 root2 [options]” 
root1、root2分别表示要执行同步的两个路径。这两个路径可以是本地目录路径,也可以是远程服务器的路径,如ssh://username@//tmp/test 。由于同步的路径已经在命令行指定了,所以这里无需在profile.prf配置文件中进行root指令的相关设置。

第三种方式:”unison root1 root2 [options]” 
这种方式相当于执行”unison default root1 root2”命令,即unison默认读取default.prf的配置。

9. 配置双机web目录同步 [root@show160 src]# mkdir -p /root/.unison/
[root@show160 src]# vim /root/.unison/default.prf
#Unison preferences file
root = /data/showroom/
root = ssh://root@10.1.0.161//data/showroom/
#force =
#ignore =
batch = true
maxthreads = 300
#repeat = 1
#retry = 3
owner = true
group = true
perms = -1
fastcheck = false
rsync = false
sshargs = -C
xferbycopying = true
log = true
logfile = /root/.unison/unison.log
[root@show161 tmp]# mkdir -p /root/.unison/
[root@show161 tmp]# vim /root/.unison/default.prf
#Unison preferences file
root = /data/showroom/
root = ssh://root@10.1.0.160//data/showroom/
#force =
#ignore =
batch = true
maxthreads = 300
#repeat = 1
#retry = 3
owner = true
group = true
perms = -1
fastcheck = false
rsync = false
sshargs = -C
xferbycopying = true
log = true
logfile = /root/.unison/unison.log

相关注解如下: 
force表示会以本地所指定文件夹为标准,将该目录同步到远端。这里需要注意,如果指定了force参数,那么Unison就变成了单项同步了,也就是说会以force指定的文件夹为准进行同步,类似与rsync。 
Unison双向同步基本原理是:假如有A B两个文件夹,A文件夹把自己的改动同步到B,B文件夹也把自己的改动同步到A,最后A B两文件夹的内容相同,是AB文件夹的合集。 
Unison双向同步的一个缺点是,对于一个文件在两个同步文件夹中都被修改时,unison是不会去同步的,因为unison无法判断以那个为准。 
ignore = Path表示忽略指定目录,即同步时不同步它。 
batch = true,表示全自动模式,接受缺省动作,并执行。 
-fastcheck true 表示同步时仅通过文件的创建时间来比较,如果选项为false,Unison则将比较两地文件的内容。 
log = true 表示在终端输出运行信息。 
logfile 指定输出的log文件。

另外,Unison有很多参数,这里仅介绍常用的几个,详细的请参看Unison官方手册。 
-auto //接受缺省的动作,然后等待用户确认是否执行。 
-batch //batch mode, 全自动模式,接受缺省动作,并执行。 
-ignore xxx //增加 xxx 到忽略列表中 
-ignorecase [true|false|default] //是否忽略文件名大小写 
-follow xxx //是否支持对符号连接指向内容的同步 
owner = true //保持同步过来的文件属主 
group = true //保持同步过来的文件组信息 
perms = -1 //保持同步过来的文件读写权限 
repeat = 1 //间隔1秒后,开始新的一次同步检查 
retry = 3 //失败重试 
sshargs = -C //使用ssh的压缩传输方式 
xferbycopying = true” 
-immutable xxx //不变目录,扫描时可以忽略 
-silent //安静模式 
-times //同步修改时间 
-path xxx 参数 //只同步 -path 参数指定的子目录以及文件,而非整个目录,-path 可以多次出现。

注意:Windows下的unison配置文件默认位于C:\Documents and Settings\currentuser.unison目录,默认的配置文件名是default.prf。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/5c0d747e4906e065a9283762a41ec2b6.html