网站运营
位置:首页>> 网站运营>> Linux 通过Rsync+Inotify实现本、异地远程数据实时同步功能

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

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

标签:rsync,inotify,同步

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

0
投稿

猜你喜欢

  • 本人做网赚也有一段日子了,其中酸甜苦辣应有尽有,目前网赚行业中国内发展规模落后于国外,所以现在做网赚主要还是做国外的项目,既然是国外项目那自
  • 为了宣传、推广自己,很多单位都架设了Web服务器,不过架设好的Web服务器如果不经过访问测试,很可能无法达到顺利发布信息的目的;这不,本文下
  • 每过几年,企业都要对网站进行改版设计。有时,企业对网站改版以新战略或是新产品的推出为契机。有时,企业只是不喜欢旧的网站才进行改版。或许,企业
  • 如果你做站的热情未减,渴望成功,请看这篇文章! ——献给立志于在互联网获得发展的新人阅读4个月前在落伍发个建站经验的帖子,一帖就升
  • 网站的外链一直是各位站长最关注的地方,天天的发贴,做链接,归根到底就是想增加外链数,提高排名.不可否认,目前在百度和Google中,网站外链
  • 经过数月的紧张开发,TM2009系列的第二个稳定版今天发布了!这个版本增加了传文件夹、插件管理、锁定等多项功能,大大增强了实用性。TM200
  • 八月是一个值得关注工作趋势的月份,今天,我们来重点关注web编程语言和脚本语言的就业趋势。您可能很想知道我所指的“web编程语言和脚本语言”
  • phpcms实现站内搜索自动对应频道的代码:<form  method="get" 
  • 建站经历不到一年,在各位前辈面前,我只能算是一位新手。为什么会写这篇文章?一方面是看到各位前辈的讨论感觉受益颇多,怀着感恩的心分享一下拙见;
  • 关于jdfwkey问题的讨论最近我的网站经常出现jdfwkey,形式如?jdfwkey=csscf,很多朋友可能也遇到过,可能不太清楚是什么
  • 你可能会因为种种原因而想在 FreeBSD 服务器上彻底禁用 sendmail,那么你可以尝试这样∶1,如果你不想重新启动服务器的
  • Discuz!7.0中,对于会员来说,主题关注功能非常实用。在逛论坛的时候,发现了一个自己感兴趣的帖子,想跟踪此帖,关注此贴的发展,并且参与
  • Linux中许多常用命令是必须掌握的,这里将我学linux入门时学的一些常用的基本命令分享给大家一下,希望可以帮助你们。这个是我将鸟哥书上的
  • 随着互联网的应用越来越普及,为满足中小企业网站在电子商务的主流应用需求而开发;解决了企业在电子商务、信息化改造过程中缺乏人才的问题,而且减小
  • 本文主要给大家介绍了关于Linux中dd命令使用的相关内容,分享出来供大家参考学习,下面来看看详细的介绍:一、Linux dd命令用指定大小
  • 您是否曾在查看报告时发现您展示的广告获得了一些点击次数,但却没有得到相应的收入?发布商经常就此问题向我们发送电子邮件或在我们的支持论坛上进行
  • 现在meta标签中的keywords和description在搜索引擎中的地位已经越来越低,原因归咎起来,基本上是由SEO和站长们堆砌关键字
  • 1、查看服务器端口是否被占用>lsof  -i:80812、查看服务器所有端口>netstat -ntlp3、查看服务
  • 草根创业三年磨一剑 香自苦寒又是一个深冬的夜晚。窗外北风正紧。当我在昏黄的灯光下,写下这些文字来追忆往昔的时候,仍然不免感慨万千。三年前,同
  • 基本概念在操作前,首先要了解一些基本概念磁盘在Linux系统中所有的设备都会以文件的形式存储。设备一般保存在/dev目录下面,以sda、sd
手机版 网站运营 asp之家 www.aspxhome.com