使用unsion完成机器文件夹容灾备份 博客分类: 架构相关
安装ocaml
wget http://caml.inria.fr/pub/distrib/ocaml-4.03/ocaml-4.03.0.tar
tar -zvxf ocaml-4.03.0.tar.gz
cd ocaml-4.03.0
./configure
make world opt
make install
安装unison
tar -zxvf unison-2.48.4.tar.gz
cd src
make UISTYLE=text
make install
在执行make install的过程中,可能会出现以下错误提示:
mv: cannot stat '/root/bin//unison': No such file or directory
make: [doinstall] Error 1 (ignored)
cp unison /root/bin/
cp: cannot create regular file '/root/bin/': Is a directory
make: *** [doinstall] Error 1
出现错误的原因在与Unison默认是将文件Copy到/root/bin目录,但Linux默认是没有该目录的,因此我们需要将生成的可执行文件unison复制到系统的PATH目录。
[root@vm1 unison-2.40.63]# cp unison /usr/local/bin
配置unsion
vi /root/.unison/rsync.prf
写入一下内容
root = /home/test1 root = /home/test2 force= /home/test1 #ignore = #batch = true repeat = 1 #retry = 3 owner = true group = true perms = -1 fastcheck = false rsync = false sshargs = -C xferbycopying = true log = true logfile = /root/.unison/unison.log confirmbigdel=false
说明如下:
两个root表示需要同步的文件夹
force表示以本地的/var/www/bbsnew文件夹为标准,将该目录同步到远端。注意,如果指定了force参数,那么unison就变成了单项同步了,也就是说会以force指定的文件夹为准进行同步.
Unison本身是可以双向同步的,但是要做到双向同步,就不要设置force参数,如果设置了force参数,就成了单项同步了,此时unison类似与sync.
Unison双向同步基本原理是:假如有A B两个文件夹,A文件夹把自己的改动同步到B,B文件夹也把自己的改动同步到A,最后A B两文件夹的内容相同,是 A B文件夹的合集.
Unison双向同步的一个缺点是,对于一个文件在两个同步文件夹中都被修改时,unison是不会去同步的,因为unison无法判断以那个为准.
ignore = Path表示忽略/sina/webdata下面的WEB-INF/tmp目录,即同步时不同步它。
batch = true,表示全自动模式,接受缺省动作,并执行
-fastcheck true表示同步时使用文件的创建时间来比较两地文件,如果这个选项为false,unison则将比较两地文件的内容.建议设置为true
log = true表示在终端输出运行信息。
logfile则指定了同时将输出写入log文件。
命令行执行
unison rsync
查看同步情况
后台运行
nohup unison rsync &
删掉后台
ps -ef|grep unison