标签:unison 同步
unison简介
rsync数据镜像方式同步是单项的,客户端只保持与服务端同步,而客户端新增或删除一些文件时,并不会同步到服务器端。而unison则可以完成双向同步,任何一端数据发生改变,都会更新到对应端。unison采用OCaml语言进行开发,通过基于rsync算法对两端文件进行比较,将两端文件更新到一致状态
unison特性
跨平台
双向同步,自动更新两份副本中没有冲突的部分,有冲突的部分由用户选择更新策略
支持增量同步,每次同步完成后会记录文件状态,下次同步时,以上次的状态为起点开始同步
安装unison
首先要安装ocaml
# cd ocaml-4.02.1
# ./configure
# make world opt
# make install
# cd unison-2.48.3
# make UISTYLE=text THREADS=true
出现错误:
which: no etags in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/java/latest/bin:/usr/local/tomcat/bin:/root/bin)
/bin/sh: line 1: etags:command not found
make[1]: [tags] Error 127(ignored)
make[1]: Leavingdirectory `/unison/unison-2.48.3‘
解决办法:
# yum install ctags-etags
# make UISTYLE=text THREADS=true
将unison命令复制到PATH路径下
# cp unison /usr/local/bin
unison命令使用
同步一台主机的两个目录
# unison /test1 /test2
远程同步
unison <本地目录> ssh://remote_IP/<绝对路径>
# unison /test1 ssh://192.168.1.13//test2
unison参数说明
testserver
测试联通性,连接到服务器就退出
unison / ssh://root@192.168.1.13/ -testserver
servercmd
告诉unison服务端unsion命令是什么
unison / ssh://root@192.168.1.13/ -testserver -seervercmd=/usr/local/bin/unison
auto
接收默认的动作,等待用户确认是否执行
batch
全自动模式,接受默认动作并执行
ignore
ignore xxx
同步时忽略的目录或路径
ignorecase
是否忽略文件名大小写
follow
follow xxx
是否跟随符号连接
patch
patch xxx
只同步指定的目录及文件,而非整个目录,可指定多次
owner group
同步属主 属组
perms = -1
保持读写权限
repeat
retry
sshargs = -C
xferbycopying
immutable xxx
指定不变化的目录,扫描时忽略
slient
静默模式
times
同步修改时间
masthreads n
最大线程数
rsync
默认ture,激活rsync传输模式
log
记录日志
logfile
日志文件
通过配置文件使用unison
同步本机和192.168.1.13的/www/mingxiao目录
首先本机要与192.168.1.13双机互信,具体方法不再写出
vim /root/.unison/ixbda.prf
root = /www/mingxiao #要同步的文件夹 root =ssh://root@192.168.1.13//www/mingxiao #要同步的文件夹 #force = /www/mingxiao #以本地文件为标准,将该目录同步到远程主机,开启后则变成单项同步 path = web1 path = web2 #只同步/www/mingxiao目录下的web1和web2目录 ignore = Path tmp #忽略同步/www/mingxiao/tmp目录 #prefer =ssh://root@192.168.1.13//www/mingxiao batch = true #全自动模式,接受并执行默认动作 maxthreads = 300 #同步时最大线程数 repeat = 1 #间隔一秒后,开始新一次同步检查 retry = 3 #重试次数 owner = true group = true perms = -1 #保持同步过来读写权限 sshargs = -C #使用ssh压缩传输方式 perms = -1 fastcheck = false #true表示同步时通过文件的创建时间来比较两地文件,若为false,则比较两地文件的内容。建议true rsync = false #debug = verbose sshargs = -C xferbycopying = true confirmbigdel = false #默认值是true,表示当需要同步的两个目录一个为空时,unison将停止,这里设置为false,即便为空unison也不会停止运转 log = true logfile = /tmp/unison.log
# unison ixbda即可开始同步
本文出自 “在路上” 博客,请务必保留此出处http://mingxiao.blog.51cto.com/8124243/1675361
标签:unison 同步
原文地址:http://mingxiao.blog.51cto.com/8124243/1675361