Chinaunix首页 | 论坛 | 博客
  • 博客访问: 80130
  • 博文数量: 17
  • 博客积分: 679
  • 博客等级: 上士
  • 技术积分: 178
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-15 12:31
文章分类
文章存档

2012年(3)

2011年(12)

2010年(2)

分类: LINUX

2011-04-03 16:22:19

一:Unison简介

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

    跨平台使用;

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

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

    只要是能连通的两台主机,就可以运行unison,可以直接使用socket连接或安全的ssh连接方式,对带宽的要求不高,使用类似rsync的压缩传输协议。

二:Unison的安装

unison各种版本下载地址:

unison 编译器下载地址:

从以上地址可以下载各种平台,各种版本的unison,有基于源码安装的,有二进制的,我下载的是二进制的,可以直接使用.这里介绍源码安装:

源码安装unison

1.ocaml-3.10.0的安装(安装unsion所需要的依赖包,两台服务器都需要安装)

1. #wget  

2. #tar -zxvf ocaml-3.10.0.tar.gz 

3. #cd ocaml-3.10.0 

4. #./configure 

5. #make world && make bootstrap && make opt && make opt.opt && make install 

2.unison-2.13.16的安装 (两台服务器都需要安装)

1. #wget  

2. #tar -zxvf unison-2.13.16.tar.gz 

3. #cd unison-2.13.16 

4. # make UISTYLE=text THREADS=true STATIC=true && make install

5.#cp unison /usr/bin  即把unison可执行文件放入$PATH中。

 

 

这里可能会报错说是找不到mkProjectInfo文件,此时执行make ./mkProjectInfo即可生成mkProjectinfo
 

 

(使用命令行方式,加入线程支持,编译为静态模式)

 三:Unsion的配置

1.配置ssh无密码登陆

1)生成密钥

#ssh-keygen (一路回车)

2)配置sshd_config

RSAAuthentication yes

PubkeyAuthentication yes

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

3)导入/导出公钥

node1#scp 

/root/id_rsa.pub   将163机器的公钥导入本机。

node1#scp .ssh/id_rsa.pub 

/root/.ssh/authorized_keys && rm /root/id_rsa.pub"   将本机的公钥导入163机器。其实就是两台主机互换公钥。

    4)   chmod 600 authorized_keys  一定要改变权限为600 

5)重启sshd

#service sshd restart

2.配置unison  

1)创建/root/.unison/default.prf  //这个配置文件是默认的默认的配置文件。

注意:root = ssh://192.168.0.163//root/test 在另一台服务器上这里写上对方服务器的ip地址,也就是在两台服务器上分别指向另一台服务器的地址。注意如果SSH端口号不是默认的22,则要在ssh://192.168.0.163:7777这样来输入

 #vi /root/.unison/default.prf   

2. root = /root/test

3. root = ssh://192.168.0.163//root/test

4. log = true 

5. auto = true 

6. batch = true 

7. maxthreads = 500 

8. owner = true    保留同步文件的权限

9. group = true    同上

10.perms = -1     同上

11.repeat = 300   设置同步的间隔。注意这里不要设置的太频繁,否则CPU会居高不下,我的是设置5分钟,在执行的时候CPU会占用较高。

12.retry = 3 

13.sshargs = -C  

14.xferbycopying = true

15.path = ./test2      相对于root的相对路径,可以有多个path进行同步。

16.path = ./test3                . 一定要加,我在使用时如果不加.会报“不是相对路径”的错误。

 

  

3.测试

1.建同步目录

1. #mkdir /root/test  

2. #touch /root/test/i-am-no-empty 

#unison   这样启动时会占用当前终端,也就是当前终端被关掉时程序会退出。可以用nohup命令放在后台运行。nohup unison &

Contacting server...

Looking for changes

  Waiting for changes from server

Reconciling changes

Nothing to do: replicas have not changed since last sync.

Sleeping for 1 seconds...

 

 

 

4、在一台电脑上启动unison之后,其实在两台电脑上都运行了unison

root@syncclient imkftfl]# ps aux | grep unison    这是在客户端也就是启动unison的那台机器上面。

imkftfl   5547  7.3  0.2  40712 31104 pts/0    S    09:26   1:57 unison

imkftfl   5548  0.0  0.0  59128  3392 pts/0    S    09:26   0:00 ssh -p 2345 219.232.227.118 -e none -C unison -server

root     11069  0.0  0.0  61156   728 pts/0    S+   09:53   0:00 grep unison

 

[root@localhost ~]# ps aux | grep unison       这是服务端。

imkftfl  21823  7.2  0.1  41052 31352 ?        Ss   09:25   1:56 unison -server

root     25654  0.0  0.0  61172   740 pts/0    S+   09:52   0:00 grep unison

阅读(2241) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~