您的位置:首页 > 其它

Unsion工具实现数据的实时同步

2010-07-06 11:50 555 查看
:Unison简介

Unison是windows和unix平台下都可以使用的文件同步工具,它能使两个文件夹(本地或网络上的)保持内容的一致。Unison有文字界面和图形界面,这里只介绍如何在文字界面下使用. unison拥有其它一些同步工具或文件系统的相同特性,但也有自己的特点:

跨平台使用;

对内核和用户权限没有特别要求;

unison是双向的,它能自动处理两分拷贝中更新没有冲突的部分,有冲突的部分将会显示出来让用户选择更新策略;

只要是能连通的两台主机,就可以运行unison,可以直接使用socket连接或安全的ssh连接方式,对带宽的要求不高,使用类似rsync的压缩传输协议。
[align=left]:Unison的安装[/align]
unison各种版本下载地址:
http://www.seas.upenn.edu/~bcpierce/unison//download.html
unison 编译器下载地址:
http://caml.inria.fr/pub/distrib/ocaml-3.10
从以上地址可以下载各种平台,各种版本的unison,有基于源码安装的,有二进制的,我下载的是二进制的,可以直接使用.这里介绍源码安装:

源码安装unison
[align=left]1.ocaml-3.10.0的安装(安装unsion所需要的依赖包,两台服务器都需要安装)[/align]
[align=left]1. #wget http://caml.inria.fr/pub/distrib/ocaml-3.10/ocaml-3.10.0.tar.gz [/align]
[align=left]2. #tar -zxvf ocaml-3.10.0.tar.gz [/align]
[align=left]3. #cd ocaml-3.10.0 [/align]
[align=left]4. #./configure [/align]
[align=left]5. #make world && make bootstrap && make opt && make opt.opt && make install [/align]
[align=left]2.unison-2.13.16的安装 (两台服务器都需要安装)[/align]
[align=left]1. #wget http://www.seas.upenn.edu/~bcpierce/unison//download/releases/stable/unison-2.13.16.tar.gz [/align]
[align=left]2. #tar -zxvf unison-2.13.16.tar.gz [/align]
[align=left]3. #cd unison-2.13.16 [/align]
[align=left]4. # make UISTYLE=text THREADS=true STATIC=true && make install [/align]
[align=left](使用命令行方式,加入线程支持,编译为静态模式)[/align]
[align=left]:Unsion的配置[/align]
1.配置ssh无密码登陆

1)生成密钥

#ssh-keygen (一路回车)

2)配置sshd_config

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys (去掉这三项的注释)

3)导入/导出公钥

node1#scp root@192.168.0.163:/root/.ssh/id_rsa.pub /root && cat /root/id_rsa.pub >> /root/.ssh/authorized_keys && rm
/root/id_rsa.pub

node1#scp .ssh/id_rsa.pub root@192.168.0.163:/root && ssh root@node2 "cat /root/id_rsa.pub >>
/root/.ssh/authorized_keys && rm /root/id_rsa.pub"

4)重启sshd

#service sshd restart
2.配置unison

1)创建链接

#ln -s /root/bin/unison /bin

2)创建/root/.unison/default.prf
[align=left]注意:root = ssh://192.168.0.163//turbomail/accounts 在另一台服务器上这里写上对方服务器的ip地址[/align]
[align=left] #vi /root/.unison/default.prf [/align]
[align=left]2. root = /turbomail/accounts [/align]
[align=left]3. root = ssh://192.168.0.163//turbomail/accounts/[/align]
[align=left]4. log = true [/align]
[align=left]5. auto = true [/align]
[align=left]6. batch = true [/align]
[align=left]7. maxthreads = 500 [/align]
[align=left]8. owner = true [/align]
[align=left]9. group = true[/align]
[align=left]10.perms = -1[/align]
[align=left]11.repeat = 1 [/align]
[align=left]12.retry = 3 [/align]
[align=left]13.sshargs = -C [/align]
[align=left]14.xferbycopying = true [/align]
3.测试

1.建同步目录
[align=left]1. #mkdir /root/test [/align]
[align=left]2. #touch /root/test/i-am-no-empty [/align]
[align=left]2.测试脚本test.bash[/align]
[align=left]1. #!/bin/bash [/align]
[align=left]2. for i in `seq 1 20000` ; do [/align]
[align=left]3. cp -f /root/test/rhel-ld-en.pdf /root/test/${i}.pdf; [/align]
[align=left]4. done [/align]
[align=left]3.启动unison[/align]
#unison

Contacting server...

Looking for changes

Waiting for changes from server

Reconciling changes

Nothing to do: replicas have not changed since last sync.
[align=left]Sleeping for 1 seconds...[/align]
本文出自 “旋律@逍遥” 博客,请务必保留此出处http://turbomailtt.blog.51cto.com/934223/344762
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: