代码改变世界

freebsd unison 双向同步工具安装配置

2013-02-27 16:01  好动的树懒  阅读(361)  评论(0编辑  收藏  举报

unison 是在linux和unix下一个同步软件,可以实现双向同步。freebsd下的安装如下:

1、#/usr/ports/net/unison-nox11

     #make install clean

    此版本为文字版没有UI,需要UI可以装#/usr/ports/net/unison 带UI版本。

2、安装完成后通过unison 这个命令来使用,命令路径/usr/local/bin/unison。

 

unison双向同步方法:

一 、配置双机ssh 互信(普通用户权限)

     [hsb@asus]% ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (~/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in ~/.ssh/id_rsa.
Your public key has been saved in ~/.ssh/id_rsa.pub.
The key fingerprint is:
17:e4:7c:79:8d:a0:00:3b:d9:f7:7a:56:f3:ac:54:4d 
在提示保存私钥(key)和公钥(public key)的位置时,使用默认值。 如果需要私钥密码(passphrase),则输入一个私钥密码(如果使用私钥密码,使用 ssh 执行远程命令时需要输入私钥密码,因此,本案例中未使用私钥密码),因此,直接回车即可。

在~/.ssh 下生成3个文件 id_rsa(私钥文件)和id_rsa.pub(公钥文件)和 known_hosts

在~/.ssh 下执行命令 cat  id_rsa.pub >> authorized_keys

~/.ssh目录下生成 authorized_keys 认证文件

二、在远程主机上执行第一步相同操作,同时将远程主机的  id_rsa.pub 加入到本地主机的 authorized_keys 中 将本地主机的  id_rsa.pub 加入到远程主机的 authorized_keys 中。(cat  id_rsa.pub >> authorized_keys 

[hsb@asus]% ssh 192.168.1.102  date
 [hsb@mypc]% ssh 192.168.1.100 date
如果不需要输入密码就出现系统日期,说明 SSH 配置成功。

(若不成功,可能是known_hosts中已知主机问题,将内容清空后重试)

三、unison 同步设置:

在安装完unison后,在~/.unison 文件夹下生成default.prf 默认配置文件(普通用户下若没有此文件和文件夹则需手动新建),以下内容为手动添加。

~/.unison/default.prf

  1 # Unison preferences file

  2 root = /usr/home/hsb                                      #同步的本地文件夹路径

  3 root = ssh://hsb@192.168.1.102//usr/home/hsb                         #同步的远程文件夹路径

  4 path = test1       #path 参数说明同步的是本地/usr/home/hsb    目录下的test1 子目录,若没有path参数同步本地/usr/home/hsb下所有文件

  5 path = test2

  6 #fore =

  7 #ignore =

  8 batch = true

  9 #repeat = 10

 10 #retry = 3

 11 #owner = true

 12 #group =true

 13 perms = 1

 14 fastcheck = false

 15 rsync = false

 16 sshargs = -C

 17 xferbycopying = true

 18 log = true

 19 logfile = /usr/home/hsb/.unison/unison.log

至此unison同步已经完成。通过命令“[hsb@asus]% unison” 就可以调用default.prf中的同步配置,将本地/usr/home/hsb 下test1 test2 文件夹同步到远程主机192.168.1.102//usr/home/hsb 目录下,不过此时同步还是单项的,若要双向同步在远程主机安装unison并执行配置即可。

若要定时执行同步在crontab中加入相应命令。

[hsb@asus]% crontab -e

1 */5 * * * * hsb  /usr/local/bin/unison

 

详细参考:

http://heylinux.com/archives/845.html  双向同步软件Unison的安装与配置