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

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

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

 更新时间:2020年04月17日 09:18:13   作者:Leon-zy  
这篇文章主要介绍了Linux 通过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

总结

到此这篇关于Linux 通过Rsync+Inotify实现本、异地远程数据实时同步功能的文章就介绍到这了,更多相关rsync+inotify实现远程实时同步内容请搜索华域联盟以前的文章或继续浏览下面的相关文章希望大家以后多多支持华域联盟!

相关文章

  • Linux中crontab输出重定向不生效问题的解决方法

    Linux中crontab输出重定向不生效问题的解决方法

    crontab命令相信大家都不陌生,下面这篇文章主要给大家介绍了关于Linux中crontab输出重定向不生效问题的解决方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧

    2018-10-10

  • Memcached 分布式缓存实现原理简介

    Memcached 分布式缓存实现原理简介

    这篇文章主要介绍了Memcached 分布式缓存实现原理简介,具有参考价值,需要的朋友可以参考下。

    2016-06-06

  • Ubuntu 16.04源码编译安装Apache 2.4.25教程

    Ubuntu 16.04源码编译安装Apache 2.4.25教程

    这篇文章主要为大家详细介绍了Ubuntu 16.04源码编译安装Apache 2.4.25,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    2017-01-01

  • 详解Linux中几个获取硬件详细信息的命令

    详解Linux中几个获取硬件详细信息的命令

    这篇文章主要介绍了详解Linux中几个获取硬件详细信息的命令,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    2020-03-03

  • 详解Linux索引节点inode

    详解Linux索引节点inode

    这篇文章主要介绍了Linux索引节点inode的相关资料,帮助大家更好的理解和学习Linux,感兴趣的朋友可以了解下

    2020-08-08

  • 如何使用Linux的rsync

    如何使用Linux的rsync

    rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步

    2021-06-06

  • CentOS6.5环境安装nginx服务器及负载均衡配置操作详解

    CentOS6.5环境安装nginx服务器及负载均衡配置操作详解

    这篇文章主要介绍了CentOS6.5环境安装nginx服务器及负载均衡配置操作,结合实例形式较为详细的分析了CentOS6.5环境安装nginx服务器及负载均衡配置具体步骤、命令与相关问题解决方法,需要的朋友可以参考下

    2018-04-04

  • Linux磁盘挂载、分区、扩容操作的实现方法

    Linux磁盘挂载、分区、扩容操作的实现方法

    这篇文章主要介绍了Linux磁盘挂载、分区、扩容操作的实现方法,详细的介绍了这些基础概念及其实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    2018-12-12

  • 详解CentOS8更换yum源后出现同步仓库缓存失败的问题

    详解CentOS8更换yum源后出现同步仓库缓存失败的问题

    这篇文章主要介绍了详解CentOS8更换yum源后出现同步仓库缓存失败的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    2020-03-03

  • 判断Unix系统及库文件是32位还是64位的详解

    判断Unix系统及库文件是32位还是64位的详解

    这篇文章主要介绍了判断Unix系统及库文件是32位还是64位的的相关资料,这里整理下查看系统位数的命令,需要的朋友可以参考下

    2016-11-11

最新评论

本文由 华域联盟 原创撰写:华域联盟 » Linux 通过Rsync+Inotify实现本、异地远程数据实时同步功能

转载请保留出处和原文链接:https://www.cnhackhy.com/3705.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者: sterben

CentOS8出现-bash:乱码问题及解决方法

linux中的相对路径的表示方法

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们