欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用unsion完成机器文件夹容灾备份 博客分类: 架构相关

程序员文章站 2024-02-17 08:14:10
...

安装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