前言:
Unison是Windows、Linux以及其他Unix平台下都可以使用的文件同步工具,它能使两个文件夹(本地或网络上的)保持内容的一致。Unison拥有与其它一些同步工具或文件系统的相同的特性,但也有自身的特点:
a.跨平台使用;
b.对内核和用户权限没有特别要求;
c.Unison是双向的,它能自动处理两分拷贝中更新没有冲突的部分,有冲突的部分将会显示出来让用户选择更新策略;
d.只要是能连通的两台主机,就可以运行unison,可以直接使用socket连接或安全的ssh连接方式,对带宽的要求不高,使用类似rsync的压缩传输协议。
示例环境:两台centos7的环境
vm1 60.30.30.30
vm2 30.60.60.60
安装:
以60.30.30.30为例,需要双向操作
编译和安装ocaml
1 | [root@ 60.30.30.30 ~]# wget http://caml.inria.fr/pub/distrib/ocaml-4.02/ocaml-4.02.0.tar.gz |
编译安装Unison
1 | [root@ 60.30.30.30 ~]# wget https://www.seas.upenn.edu/~bcpierce/unison/download/releases/unison-2.48.3/unison-2.48.3.tar.gz |
配置ssh的无密码登录
1 | # 检查ssh密钥文件是否存在 |
编写脚本
以同步/home/test/的文件为例,
服务器一,60.30.30.30
1 | [root@ 60.30.30.30 ~]# vim unsion.sh |
1 | /bin/sh |
服务器二,30.60.60.60
1 | [root@ 30.60.60.60 ~]# vim unsion.sh |
1 | /bin/sh |
执行脚本
1 | [root@ 30.60.60.60 ~]# nohup unsion.sh > /dev/null 2>&1 & |