利用rsync+inotify搭建远程备份容灾系统

来源:互联网 发布:nba球员数据对比网站 编辑:程序博客网 时间:2024/05/03 15:51

一:场景描述

    现在有A,B两个linux系统,A系统为工作用系统,其目录/data下存放了很多重要的数据,为防止误删除数据,造成数据丢失,现要求搭建一个备份服务器,要求/data目录下有新数据产生时,即刻可以复制到备份服务器上

二:解决方案

   采用rsync+inotify

注: 要使用inotify内核版本必须在2.6.13以上

 

三:实验环境

OS: centos 5.10 x86_64

A机IP:192.168.78.11                     (A为rsync客户端)

B机IP:192.168.78.12                  (B为rsync服务端)

A机: /data为需要做备份的目录

B机: /backup为备份用目录

rsync版本:rsync-3.3.1.tar.gz

inotify版本:inotify-tools-3.14.tar.gz

 

四:安装rsync(A, B都要安装)和inotify-tools(A安装即可)

1.安装rsync

卸载掉系统自带的rsync

yum remove rsync

tar xf rsync-3.3.1.tar.gz

cd rsyc-3.3.1

./configure --prefix=/usr/local/rsync

make

make install

2.安装inotify-tools

tar xf inotify-tool-3.14.tar.gz

cd inotify-tools-3.14

./configure --prefix=/usr/local/inotify-tools

make

make install

五:配置rsync

1.先配置服务端(在B系统上配置)

创建备份目录mkdir /backup

默认配置文件/etc/rsyncd.conf不存在,需要自己创建,内容如下

uid = nobody

gid = nobody

use chroot = yes

max connections = 20

timeout = 600

strict modes = yes

read only = no

write only = no

hosts allow = 192.168.78.11

hosts deny = *

ignore errors = true

pid file = /var/run/rsync.pid

lock file = /var/lock/subsys/rsync.lock

log file = /var/log/rsync.log

 

[backup]                                             // 模块名;

    path = /backup                              // 实际备份目录;

    comment = file

    list = false

    uid = root

    gid = root

    auth users = user1                       // 授权用户名

    secrets file =/etc/secret.pass

建立认证文件并设置权限

cat /etc/secret.pass

user1:111111

chmod 600 /etc/secret.pass

现在就可以启动rsync进程了

/usr/local/rsync/bin/rsync --daemon

echo "/usr/local/rsync/bin/rsync --daemon">>/etc/rc.local

B系统上配置完毕

 

2.配置客户端(在A系统上)

◆.首先加入inotify-tools的库文件

echo "/usr/local/inotify-tools/lib" > /etc/ld.so.conf.d/inotify-tools.conf && ldconfig

◆.在/opt目录先创建一个用于同步的脚本inotify.sh内容如下

cat /opt/inotify.sh

#!/bin/bashinotifywait=/usr/local/inotify-tools/bin/inotifywaitrsync=/usr/local/rsync/bin/rsyncsrc=/datauser=user1host=192.168.78.12module=backup$inotifywait -mrq \--timefmt '%d/%m/%y %H:%M' \--format '%T %w %f %e' \-e close_write,move,create,delete,attrib $src | while read linedo    $rsync -zrotpg --password-file=/etc/secret.pass $src/ $user@$host::$module    echo "$line event was found" >> /var/log/rsync.log 2>&1 done
◆.创建认证文件/etc/secret.pass并设置权限,内容如下

cat /etc/secret.pass

111111

chmod 600 /etc/secret.pass

◆.后台运行inotify.sh

sh /opt/inotify.sh &

echo "sh /opt/inotify.sh &">>/etc/rc.local

六:验证是否及时同步

在/data目录先创建一个文件touch file1,查看B系统/backup下file1是否出现,如果存在file1,说明,远程备份容灾系统搭建成功


0 0
原创粉丝点击