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 |
详细参考: