综合架构实时同步

Day35

综合架构实时同步

1.网站实时同步原理
  • 数据备份方法:
    定时任务备份数据:备份数据最短周期1分钟(内部人员备份数据)
    实时同步备份数据:没有同步等待时间(外部人员备份数据)
  • 实时同步数据原理:
    监视存储服务器上指定目录---数据信息变化 >监控软件(inotify)
    利用同步传输数据软件---将变化数据传输 >传输软件(rsync)
    实现实时传输数据---实时同步(inotify+rsync)
2.数据监控软件 inotify
  • 作用:监控目录中数据信息变化
  • 部署过程:
  • 第一个历程:部署安装软件
    yum install -y inotify-tools
    /usr/bin/inotifywait (重要) --- 监控目录数据信息变化命令 /usr/bin/inotifywatch (了解) — 统计目录产生变化的信息
  • 第二历程:掌握inotifywait监控命令用法:
    --exclude —进行监控数据时,指定哪些数据信息不要监控
    --excludei —进行监控数据时,指定哪些数据信息不要监控(不区分大小写)
    -m —一直对指定目录进行监控
    -r —递归监控目录中数据变化
    --format —定义输出信息格式
    %w 监控目录路径信息
    %f 监控触发事件数据信息
    %e 相应事件信息
    %T 定时触发事件时间信息(调用–timefmt所定义时间格式)
    --timefmt —定义时间格式信息
    -q —将某些信息不要进行显示输出
    -e —指定监控的事件信息
  • inotify所有事件信息:
事件名称事件说明翻译
accessfile or directory contents were read文件或目录内容被读取
modify\file or directory contents were written文件或目录内容被写入
attribfile or directory attributes changed文件或目录属性信息改变
close_writefile or directory closed, after being opened in writeable mode文件或目录被关闭, 在文件打开后写入新的信息后关闭
close_nowritefile or directory closed, after being opened in read-only mode文件或目录被关闭, 在文件打开后没有写入新的信息后关闭了文件或目录
closefile or directory closed, regardless of read/write mode文件或目录被关闭, 不管文件是否是读或是写
openfile or directory opened文件或目录被打开
moved_tofile or directory moved to watched directory文件或目录被移动到监控目录中
moved_fromfile or directory moved from watched directory文件或目录被移动出监控目录
movefile or directory moved to or from watched directory只要监控目录中,有数据移动操作
createfile or directory created within watched directory在监控目录中,有文件或目录数据信息创建操作
deletefile or directory deleted within watched directory在监控目录中,有文件或目录数据信息删除操作

16833586-a75c138b0cc93ab4.gif
inotify监控数据变化命令 – 实现数据变化实时同步

3. 实现实时同步数据过程:
方法一: 编写脚本
# 01. 监控目录数据信息变化
inotifywait -mrq /data --format "%w%f" -e create,delete,move,close_write|\
while read line
补充: 脚本循环用法:
01. for   循环   for 变量 in 循环信息;do 操作命令;done  有限制循环
02. while 循环   while 条件表达式;    do 操作命令;done  死循环     当条件满足时, 条件为真
03. until 循环   until 条件表达式;    do 操作命令;done  死循环     当条件不满足, 条件为假

# 02. 将变化数据进行实时同步
rsync -avz $line  rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password

脚本信息:
#!/bin/bash
inotifywait -mrq /data --format "%w%f" -e create,delete,move,close_write|\
while read line=oldboy03.txt
do 
   rsync -avz --delete /data/  rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
done

问题:
01. 如何让脚本文件始终运行
nohup sh /server/scripts/inotify.sh &

02. 利用脚本数据同步完毕后, 脚本会依旧持续运行?
cd /data && rsync -az -R "./oldboy02.txt" rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
cd /data && rsync -az -R --delete ./   --include="oldboy01.txt" --exclude=*  rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
  • 方式二: 利用软件 二进制软件
    第一个里程: 下载部署实时同步软件 sersync–>inotify+rsync
    https://github.com/wsgzao/sersync------>>下载
    将软件保存在此目录中
mkdir /server/tools -p

unzip sersync_installdir_64bit.zip 
cd /server/tools/sersync_installdir_64bit

第二个里程: 将解压好目录保存到指定目录中

mv sersync/ /usr/local/

第三个里程: 修改软件配置信息

vim conf/confxml.xml

image.png
image.png

第四个里程: sersync服务如何启动

cd /usr/local/sersync/bin/
chmod +x sersync
sersync -dro /usr/local/sersync/conf/confxml.xml	
  • 显示数据同步过程方法:
    修改配置文件:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值