设为首页 收藏本站
查看: 288|回复: 0

[经验分享] unison双向同步工具使用

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-17 09:26:32 | 显示全部楼层 |阅读模式
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-87517-1-1.html 上篇帖子: linux下查看和配置ip的细节 下篇帖子: 关于linux远程时等待时间长的优化
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表