Linux 通过Rsync+Inotify实现本、异地远程数据实时同步功能

作者:Leon-zy 时间:2023-11-03 20:09:39 

0x0 测试环境

总部生产服务器与分部备份服务器要求实现异地数据备份,环境如下

**centos 6.5**
生产服务器目录: /home/zytest/files
备份服务器目录: /home/zytest/files
用户 / 密码: zytest / zytest

0x1 生产服务器环境搭建

0x1.1 安装gcc编译器和rsync

yum install gcc rsync -y

0x1.2 拷贝inotify到服务器并解压

cd /root
tar xfvz inotify-tools-3.13.tar.gz

0x1.3 进入inotify 目录安装


cd inotify-tools-3.13
./configure
make
make install    

/usr/local/bin/inotifywait ##检查是否安装成功

0x2 备份服务器环境搭建

0x2.1 安装 xinetd 和 rsync

yum install xinetd rsync -y

0x3 以下内容两台服务器同步操作


useradd -u 600 zytest
passwd zytest    
zytest
su - zytest -c 'mkdir /home/zytest/files' ##创建同步目录

0x4 备份服务器上配置rsyncd

0x4.1 编辑/etc/xinetd.d/rsync按照以下内容修改


disable = yes  ==> disable= no
flags = IPv6  ==> flags= IPv4
server_args = --daemon ==> server_args = --daemon --config=/etc/rsyncd.conf

0x4.2 编辑/etc/rsyncd.conf 并添加以下脚本信息


uid = root
gid = root
use chroot = no
max connections = 1000
strict mode = yes
port = 873
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
# following for user "zytest", change for other users
[zytest]
path = /home/zytest
ignore errors
auth users =zytest
secrets file = /home/rsync-dst.ps
read only = no
list = false

Ps: rsyncd 配置文件在 xinetd上,所以备份服务器安装xinetd

0x4.3 把密码写入调用的密码文件并赋予权限


echo zytest:zytest >> /home/rsync-dst.ps
chmod 600 /home/rsync-dst.ps

0x4.4 通过xinetd启动rsync


/etc/rc.d/init.d/xinetd restart

0x5 主服务器上配置inosync脚本文件

0x5.1 ** ##编辑/root/inosync添加脚本代码**


#!/bin/sh
#chkconfig: 3 78 10

#This file exist from compile
if [ ! -f /usr/local/bin/inotifywait ]
then
echo "cannot start. file inotifywait NOT exist!"
exit
fi

#This file is runnable shell script
if [ ! -f /usr/local/bin/inosync.so.1 ]
then
echo "contact administrator. inosync.so.1 NOT exist!"
exit
fi

case "$1" in
'start')
/usr/local/bin/inosync.so.1 &
;;

'stop')
pid=`ps -ef | grep -v grep | grep "inotifywait" | awk '{print $2}'`
kill -9 $pid 2>&1
;;

'restart')
$0 stop
$0 start
;;

esac

0x5.2 赋予脚本权限,设置开机启动


chmod a+x /root/inosync
cp /root/inosync /etc/rc.d/init.d

0x5.3 配置调用的主脚本文件 /root/inosync.so.1


rhost=**备份服务器IP**
user=zytest
src=/home/zytest/files
dst=zytest
#dst corresponding to [zytest] in file /etc/rsyncd.conf on dst server
log=/root/inosync.log
/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M:%S' --format '%T %w%f %e' -e close_write,create,move,delete,attrib $src | while read files
do
echo == rsync begin == >> $log
rsync -avP --password-file=/home/rsync-src.ps --delete $src $user@$rhost::$dst >> $log 2>&1
echo -- rsyncd -- >> $log
date >> $log
echo "${files} was rsynced " >> $log 2>&1
done

PS: %T后面有空格 %f和%e之间也有空格

0x5.4 赋予inosync.so.1脚本权限,拷贝到/usr/local/bin


chmod a+x /root/inosync.so.1
cp /root/inosync.so.1 /usr/local/bin

0x5.5 把密码写入调用的密码文件并赋予权限


echo zytest >> /home/rsync-src.ps
chmod 600 /home/rsync-src.ps

0x6 目标服务器设置inosync自动启动并开启inosync服务


chkconfig --level 3 inosync on
/etc/rc.d/init.d/inosync start

0x7 测试 END

在生产服务器/home/zytest/files目录下创建文件和文件夹,查看备份存储是否也同步了文件和文件夹,同步即成功。

过程可通过日志查看


tail -f /root/inosync.log

来源:https://blog.csdn.net/weixin_42728126/article/details/105543771

标签:rsync,inotify,同步
0
投稿

猜你喜欢

  • IM大战 百度Hi能否杀出重围

    2008-07-21 12:20:00
  • WIN2003组策略详解

    2008-12-29 13:22:00
  • Linux操作系统中的FTP客户端

    2009-12-07 19:08:00
  • 免费架设自己的DNS服务器

    2009-01-23 17:10:00
  • 邵晓锋:大力加强电子商务基础设施建设

    2009-10-29 11:51:00
  • dedecms生成速度超级优化攻略 从50秒20页到0.72秒20页

    2010-12-08 16:35:00
  • 移花接木 让IIS成为WEB共享“通道”(1)

    2007-03-27 09:53:00
  • Centos6.5升级glibc过程介绍

    2023-10-17 18:06:47
  • 如何计算WEB服务器的最大负载量?

    2008-08-20 12:53:00
  • linux中alarm函数的实例讲解

    2023-03-17 23:47:01
  • 详解在Linux虚拟机下配置tomcat

    2023-08-31 08:57:19
  • 坚持更新 让我成功跳出谷歌沙盒

    2009-01-10 22:07:00
  • Windows2003服务器入侵前兆检测技巧

    2009-05-27 10:49:00
  • 借用SSL验证,让IIS信息访问更安全(3)

    2007-03-27 09:46:00
  • SEO指导下的编辑艺术:重视百度做伪原创

    2009-03-21 11:14:00
  • 美联社要求谷歌创建新闻注册服务提高搜索排名

    2009-11-14 09:02:00
  • ubuntu19系统及以下版本安装android studio的教程

    2021-06-08 03:58:50
  • Exchange Server 2003故障诊断

    2010-02-21 19:03:00
  • CentOS 7.x安装部署Memcached服务器的详细方法

    2023-04-12 10:59:21
  • GoDaddy:如何使用File Manager上传文件

    2010-05-01 12:53:00
  • asp之家 网站运营 m.aspxhome.com