ITPub博客

首页 > Linux操作系统 > Linux操作系统 > inotify+csync2实现文件双向同步

inotify+csync2实现文件双向同步

原创 Linux操作系统 作者:nmgzw 时间:2019-07-05 14:33:06 0 删除 编辑
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE1、操作系统版本:

Red Hat Enterprise Linux Server release 5.4 (Tikanga)

KERNEL2.6.18-164.el5

 

 

2、需要安装的文件:

 

inotify-tools-3.13.tar.gz

librsync-0.9.7.tar.gz

libgcrypt-1.4.4.tar.gz

libgpg-error-1.7.tar.gz

libtasn1-2.1.tar.gz

gnutls-2.6.6.tar.bz2

sqlite-2.8.17.tar.gz

sqlite-autoconf-3070900.tar.gz

csync2-1.34.tar.gz

 

注意安装顺序,最后安装csync2,并且在安装csync2前,需要做以下操作:

# echo "/usr/local/lib" >> /etc/ld.so.conf

# echo "csync2 30865/tcp" >> /etc/services

# ldconfig

 

3、安装csync2

 4、在相应服务器上创建

# mkdir /data/csync_backup //创建备份相关的目录

以下操作只需要在单台服务器上进行操作:

 

1、安装完csync2后,在安装目录内运行make cert会生成相应的口令文件,如果

没有运行make cert,那么需要手动执行命令:

# openssl genrsa -out /etc/csync2_ssl_key.pem 1024

# openssl req -new -key /etc/csync2_ssl_key.pem -out /etc/csync2_ssl_cert.csr

# openssl x509 -req -days 600 -in /etc/csync2_ssl_cert.csr -signkey /etc/csync2_ssl_key.pem \

-out /etc/csync2_ssl_cert.pem

 

2# cd /etc/xinetd.d目录内,创建文件csync2,内容如下

service csync2

{

    disable = no

    protocol = tcp

    flags = REUSE

    socket_type = stream

    wait = no

    user = root

    group = root

    server = /usr/local/sbin/csync2

    server_args = -i   

}

 

3

# csync2 -k /etc/csync2.key


4

# vi /etc/csync2.cfg

 

    #nossl * *;

    group mygroup

    {

     host jtecp2 jtecp1; //定义组成员

   

     key /etc/csync2.key;

   

     include /app/tomcat; //需要同步的目录

   

     exclude /app/tomcat/log; //需要排除的目录。 

     exclude *~ .*; //排除同步.开头的文件  

   

    action

    {

      pattern *;   

      logfile "/var/log/csync2_action.log";

     do-local;

    }

   

    backup-directory /data/csync_backup; //防错备份目录,根据自己的需求设置。

    backup-generations 3;

    auto younger; //同步以最新的文件为标准更新.

    }

       

5   

# cd /usr/local/sbin

# vi csync2.sh

 

    #!/bin/bash

    src=/app/tomcat

    /usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' \

    --exclude "\.swp$" \

    -e close_write,modify,delete,create,attrib \

    ${src} \

    | while read file

    do

    #csync2 -x >/dev/null 2>&1

    csync2 -xv

    echo "${src} was csynced....."

    done >> /var/log/csync2.log 2>&1

6、将以上单机产生的文件拷贝到另一台机器

主要是/etc/csync2*

/usr/local/sbin/csync2.sh

7

# service xinetd restart

# chmod a+x csync2.sh

# ./csync2.sh //分别在三台机器上创建并执行此脚本,并将其加入/etc/rc   

 

遇到错误:

在安装csync2的时候,出现了与cfgfile_scanner.c文件编译相关错误,

我的系统主要是缺少了 gcc-c++-4.1.2-46.el5.x86_64.rpm这个包!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25702/viewspace-711062/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2002-10-18

  • 博文量
    71
  • 访问量
    57523