您的位置:首页 > 运维架构 > Linux

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

2014-08-21 12:10 375 查看
一:场景描述

    现在有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/bash

inotifywait=/usr/local/inotify-tools/bin/inotifywait
rsync=/usr/local/rsync/bin/rsync
src=/data
user=user1
host=192.168.78.12
module=backup

$inotifywait -mrq \
--timefmt '%d/%m/%y %H:%M' \
--format '%T %w %f %e' \
-e close_write,move,create,delete,attrib $src | while read line
do
    $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,说明,远程备份容灾系统搭建成功
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  rsync+inotify linux centos