实时数据同步inotify+rsync
inotify
inotify是一个实时监控服务,他能实时监控服务器中的目录的变化,发现目录中变化后,在配合rsync服务推送到备份服务器上
inotify要求内核要在2.6.13或之上,通过notify,可以监控文件系统中如增删查改等各种事件
列出下面文件说明服务器支持notify
[root@node2 ma]#ll /proc/sys/fs/inotify/
total 0
-rw-r--r-- 1 root root 0 Jul 31 11:00 max_queued_events
-rw-r--r-- 1 root root 0 Jul 31 11:00 max_user_instances
-rw-r--r-- 1 root root 0 Jul 31 11:00 max_user_watches
根据工作需要,可调整
#:max_queued_events:inotify事件队列最大长度,如值太小会出现 Event Queue Overflow 错误,默认值:16384
#:max_user_watches:可以监视的文件数量(单进程),默认值:8192
#:max_user_instances:每个用户创建inotify实例最大值,默认值:128
inotify依赖inotify-tools(在epel源)
[root@node4 ~]#yum install inotify-tools -y
监控/data/文件
inotifywait -mrq --timefmt '%Y-%m-%d %H:%M' --format '%T %w %f' -e create,delete,moved_to,close_write,attrib /data/www #: -m 始终保持事件监听
-r 递归监控数据目录变化
-q 输出少量事件信息 --timefmt 定义时间格式 %Y 年份信息
%m 月份信息
%d 每月第几天
%H 小时
%M 分钟 --format 定义格式
%T 输出时间格式中定义的时间格式信息
%w 时间出现时,监控文件或目录的名称信息
%f 时间出现时,将显示监控目录下触发事件的文件或目录信息,否则为空 -e 指定事件类型 create 文件或目录创建
delete 文件或目录被删除
modify 文件或目录内容被写入
attrib 文件或目录属性改变
moved_to 文件或目录被移动到监控的目录中
moved_from 文件或目录从监控的目录中被移动
move 文件或目录不管移动到或是移出监控目录都触发事件
delete_self 文件或目录被删除,目录本身被删除
unmount 取消挂载
rsync
先安装包
[root@node4 www]#yum install rsync -y
编辑rsync服务器的配置文件
[root@node2 ma]#vim /etc/rsyncd.confuid = root
uid = root
gid = root #: 定义rsync服务器以root用户运行
use chroot = no #:不允许切根
max connections = 0 #:最大连接数,0表示不限制
ignore errors #:如果有错误,忽略错误
exclude = lost+found/ #:针对此目录不检查
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
reverse lookup = no #:关闭反向解析
hosts allow = 192.168.8.0/24 #:允许那些主机连接 [backup] # : 为一下代码块起的名字
path = /backup/ #:将数据备份到本机哪个目录
comment = backup #:描述
read only = no #:可写
auth users = rsyncuser #:远程用户
secrets file = /etc/rsync.pass #:远程用户放置密码的文件
在rsync服务器端生成验证文件并修改权限
[root@node2 ma]#echo "rsyncuser:magedu" > /etc/rsync.pass #: 格式是 用户名:密码
[root@node2 ma]#chmod 600 /etc/rsync.pass
在rsync服务器端准备备份文件并重启服务
[root@node2 ma]#mkdir /backup
[root@node2 ma]#systemctl restart rsyncd
在客户端配置密码文件(同步的时候就不用输入密码了)并修改权限
[root@node4 ~]#echo "magedu" > /etc/rsync.pass
[root@node4 ~]#chmod 600 /etc/rsync.pass
然后测试
[root@node4 ~]#rsync -avz --password-file=/etc/rsync.pass /data/www rsyncuser@192.168.37.22::backup #:模板 rsync -avz --password-file=/etc/rsync.pass /data/ rsyncuser@rsync服务器IP::backup
现在可以同步了
然后我们开始使用脚本让它实时同步
在客户端创建脚本
[root@node4 www]#vim /data/inotify_rsync.sh
#!/bin/bash
#
#********************************************************************
#Author: Ma Xue Bin
#QQ: 316428921
#Date: 2019-07-31
#!/bin/bash
SRC='/data/www/'
DEST='rsyncuser@192.168.37.22::backup'
inotifywait -mrq --timefmt '%Y-%m-%d %H:%M' --format '%T %w %f' -e create,delete,moved_to,close_write,attrib ${SRC} |while read DATE TIME DIR FILE;do
FILEPATH=${DIR}${FILE}
rsync -az --delete --password-file=/etc/rsync.pass $SRC $DEST && echo "At ${TIME} on ${DATE}, file $FILEPATH was backuped up via rsync" >> /var/log/changelist.log
done
加执行权限,运行
[root@node4 ~]#chmod +x /data/inotify_rsync.sh
[root@node4 ~]#. /data/inotify_rsync.sh
实时数据同步inotify+rsync的更多相关文章
- Linux系统实时数据同步inotify+rsync
一.inotify简介 inotify是Linux内核的一个功能,它能监控文件系统的变化,比如删除.读.写和卸载等操作.它监控到这些事件的发生后会默认往标准输出打印事件信息.要使用inotify,Li ...
- Rsync+inotify 实时数据同步 inotify master 端的配置
强大的,细致的,异步的文件系统事件监控机制.Linux 内科从 2.6.13 起支持 inotify Inotify 实现的几款软件:Inotify,sersync,lsyncd ※Inotify 实 ...
- Linux学习系列之Inotify+Rsync实现实时数据同步
Inotify简介 inotify介绍 inotify是一种强大的.异步的文件系统监控机制,linux内核从2.6.13起,加入了inotify的支持,通过inotify可以监控文件系统中添加.删除. ...
- 【linux运维】rsync+inotify与sersync+rsync实时数据同步笔记
Rsync(remote sync)远程同步工具,通过rsync可以实现对远程服务器数据的增量备份通过,但rsync自身也有缺陷,同步数据时,rsync采用核心算法对远程服务器的目标文件进行对比,只进 ...
- rsync+inotify实时数据同步多目录实战
rsync+inotify实时数据同步多目录实战 inotify配置是建立在rsync服务基础上的配置过程 操作系统 主机名 网卡eth0 默认网关 用途 root@58server1 1 ...
- rsync+inotify实时数据同步单目录实战
rsync+inotify实时数据同步单目录实战 rsync+inotify实时数据同步单目录实战 inotify是一个强大的.细粒度的.异步的文件系统事件监控机制,linux内核从2.6.13起 ...
- sersync+rsync实时数据同步
sersync+rsync实时数据同步 1.相关背景介绍 前面有关文章配置实现了rsync增量同步以及配置为定时同步,但是在实际生产环境中需要实时的监控数据从而进行同步(不间断同步),可以采取inot ...
- Tapdata Real Time DaaS 技术详解 PART I :实时数据同步
摘要:企业信息化过程形成了大量的数据孤岛,这些并不连通的数据孤岛是企业数字化转型的巨大挑战.Tapdata Real Time DaaS 采用的CDC模式,具有巨大的优势,同时是一个有技术壁垒的活 ...
- Tapdata 在线研讨会:实时数据同步应用场景及实现方案探讨
数字化时代的到来,企业业务敏捷度的提升,对传统的数据处理和可用性带来更高的要求,实时数据同步技术的发展,给基于数据的业务创新带来了更多的可能性.9月8日晚,Tapdata 联合MongoDB 中文社区 ...
随机推荐
- sql关联修改
UPDATE p set p.ClientID = c.id from PaymentTable p left JOIN ClientTable c on p.ClientID = c.Clie ...
- 菜鸡的Java笔记 第十九 - java 继承
继承性的主要目的,继承的实现,继承的限制 继承是面向对象中的第二大主要特点,其核心的本质在于:可以将父类的功能一直沿用下去 为什么需要继承? ...
- typing使用
官方文档: typing 注: typing是python3.5(PEP484)开始的 可用于: 类型检查器.集成开发环境.静态检查器等, 但是不强制使用 使用方式 两种使用方式 别名: 先定义=, ...
- Centos8 Docker部署ElasticSearch集群
ELK部署 部署ElasticSearch集群 1.拉取镜像及批量生成配置文件 # 拉取镜像 [root@VM-24-9-centos ~]# docker pull elasticsearch:7. ...
- 学不懂Netty?看不懂源码?不存在的,这篇文章手把手带你阅读Netty源码!
阅读这篇文章之前,建议先阅读和这篇文章关联的内容. 1. 详细剖析分布式微服务架构下网络通信的底层实现原理(图解) 2. (年薪60W的技巧)工作了5年,你真的理解Netty以及为什么要用吗?(深度干 ...
- [luogu5537]系统设计
考虑哈希,令$h[x]$表示根到$x$路径的哈希值,那么有$h[x]+hash(l,r)=h[ans]$ 考虑用线段树维护$a_{i}$的区间哈希值,并用map去找到对应的$ans$ 但还有一个问题, ...
- 联盛德 HLK-W806 (四): 软件SPI和硬件SPI驱动ST7735液晶LCD
目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ...
- LOJ #2185 / 洛谷 P3329 - [SDOI2015]约数个数和(莫比乌斯函数)
LOJ 题面传送门 / 洛谷题面传送门 题意: 求 \(\sum\limits_{i=1}^n\sum\limits_{j=1}^md(ij)\),\(d(x)\) 为 \(x\) 的约数个数. \( ...
- 洛谷 P5853 - [USACO19DEC]Tree Depth P(生成函数+背包)
洛谷题面传送门 神仙题. 首先考虑一个点的深度是什么,注意到对于笛卡尔树而言直接从序列的角度计算一个点的深度是不容易的,因为这样会牵扯到序列中多个元素,需要 fixed 的东西太多,计算起来太复杂了. ...
- Codeforces 1010F - Tree(分治 NTT+树剖)
Codeforces 题面传送门 & 洛谷题面传送门 神仙题. 首先我们考虑按照这题的套路,记 \(t_i\) 表示 \(i\) 上的果子数量减去其儿子果子数量之和,那么对于一个合法的放置果子 ...