实时同步服务

实时同步工作原理

a.创建要存储数据的目录

b.利用实时同步的软件监控我们进行备份的数据目录

c.利用rsync服务进行数据推送传输备份

实时同步服务软件部署

a  inotify+rsync实时同步备份

1)安装inotify

inotify-tools(yum)

说明:epel源

/usr/bin/inotifywait    <----实现对数据目录信息变化j监控
/usr/bin/inotifywatch   <----监控数据信息变化,对变化信息进行统计

[root@nfs01 inotify]# ll
total 0
-rw-r--r-- 1 root root 0 Apr 7 23:06 max_queued_events
-rw-r--r-- 1 root root 0 Apr 7 23:06 max_user_instances
-rw-r--r-- 1 root root 0 Apr 7 23:06 max_user_watches
[root@nfs01 inotify]# pwd
/proc/sys/fs/inotify

max_user_watches:设置inotifywait或inotifywatch命令可以监控的文件数量(单进程)
          默认只能监控8192个文件

max_user_instances:设置每个用户可以运行的inotifywait或inotifywatch命令的进程数

          默认每个用户开启inotify服务128个进程

max_queued_events:设置inotify实例事件(events)队列可容纳的事件数量

          默认监控事件队列长度为16384

2)  部署rsync守护进程

rsync服务端部署

a.检查是否有rsync

b.编写rsync主配置文件

c.创建备份目录管理用户

d.创建备份目录,并进行授权

e.创建认证文件,编写认证用户和密码信息,设置文件权限600

f.启动rsync守护进程

rsync客户端部署

a.检查是否有rsync

b.创建认证文件,编写认证用户密码信息即可,设置文件权限600

c.利用客户端进行数据同步测试

3)inotify服务与rsync服务建立联系(shell脚本)

rsync软件应用命令

rsync -avz /etc/hosts  rsync_backup@172.16.1.41::backup  --password-file=/etc/rsync.password

inotify命令

-m |  --monitor    始终保持事件监听状态

-r           进行递归监控

-q|--quiet       将无用的输出信息,不显示

--timefat(fmt)      设定日期的格式

            man strftime 获取更多时间格式

--format<fmt>      命令执行过程中,输出的信息格式

-e          指定监控的事件信息

man inotifywait      .查看所有参数说明和所有可以监控的事件信息

总结主要用到的事件信息:

create创建,delete删除,moved_to移入,close_write修改

inotifywait -mrq --timefmt "%F" --format "%T %w%f 事件信息:%e" /data    
2021-04-10 /data/dir01/file04.txt 事件信息:OPEN

inotifywait -mrq --timefmt "%F" --format "%T %w%f 事件信息:%e" -e create /data    <---指定监控创建事件信息
2021-04-10 /data/dir01/file05.txt 事件信息:CREATE

inotifywait -mrq  --format "%w%f" -e create,delete,moved_to,close_write  /data

以上为实时监控同步过程所需要的重要监控命令

##编写脚本实现inotify与rsync软件结合

#!/bin/bash

inotifywait -mrq  --format "%w%f" -e create,delete,moved_to,close_write  /data

while read line

do

rsync -avz --delete /data rsync_backup@172.16.1.41::backup b--password-file=/etc/rsync.password

done

shell循环语法总结:

for循环    for xx   in    循环条件内容信息;do  xxx; done

while循环    while循环条件:do xx : done  <--- 只要条件满足,就一直循环

         while true:  do  xx: done     <---死循环

运输工作中编写自动化脚本规范:

1.先完成基本需求

2.优化完善脚本内容

3.写一些注释说明信息

4.进行反复测试

4)测试

b  sersync+rsync实时同步备份

实时同步软件概念介绍

inotify软件

linux内核从2.6.13起

加入inotify支持,通过Inotify可以监控文件系统中添加,删除,修改,移动等各种事情,利用这个内核接口,

第三方软件就可以监控文件系统下文件的各种变化,而inotify-tools正是实施这样监控的软件

posted @ 2021-04-06 21:13  弓长虎三  阅读(122)  评论(0)    收藏  举报