实时数据同步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 中文社区 ...
随机推荐
- python3+Robotframework+ride+Selenium2Library+Autoitlibrary环境搭建
1.安装python3.8 第一步是安装Python:https://www.python.org/,RF框架是基于python 的,所以一定要有python环境.将python-3.8.2-amd6 ...
- PTA 7-2 哈夫曼编码 (30分)
PTA 7-2 哈夫曼编码 (30分) 给定一段文字,如果我们统计出字母出现的频率,是可以根据哈夫曼算法给出一套编码,使得用此编码压缩原文可以得到最短的编码总长.然而哈夫曼编码并不是唯一的.例如对字符 ...
- Spark中资源调度和任务调度
Spark比MR快的原因 1.Spark基于内存的计算 2.粗粒度资源调度 3.DAG有向无环图:可以根据宽窄依赖划分出可以并行计算的task 细粒度资源调度 MR是属于细粒度资源调度 优点:每个ta ...
- IDEA 运行maven工程报错:No goals have been specified for this build.....解决办法
出现这种错误可以在pom.xml里配置, 找到<build>标签在下面<plugins>标签上面加上<defaultGoal>compile</default ...
- oracle 与 前台 md5
创建函数: CREATE OR REPLACE FUNCTION MD5( passwd IN VARCHAR2) RETURN VARCHAR2 IS retval varchar2(32); BE ...
- nrf52832蓝牙开发踩过的坑
接触nrf52832芯片已经有一段时间了,记录我踩过的坑.这些坑大多都补回来了,愿后来的开发者没有坑~ 先来点开胃小菜 一.环境问题 安装离线包遇到的错误--svdconv exited with a ...
- python实现图片色素的数值运算(加减乘除)和逻辑运算(与或非异或)
目录: (一)数值运算(加减乘除) (二)逻辑运算(与或非异或) 正文: (一)数值运算(加减乘除) opencv自带图片色素的处理函数------相加:add() 相减:subtract() ...
- python实现拉普拉斯图像金字塔
一,定义 二,代码: 要求:拉普拉斯金字塔时,图像大小必须是2的n次方*2的n次方,不然会报错 1 # -*- coding=GBK -*- 2 import cv2 as cv 3 4 5 #高斯金 ...
- Elastic AMP监控.NET程序性能
什么是Elastic AMP Elastic APM 是一个应用程序性能监控系统.它可以请求的响应时间.数据库查询.对缓存的调用.外部 HTTP 请求等的详细性能信息,可以实时监控软件服务和应用程序. ...
- C/C++ Qt Dialog 对话框组件应用
在Qt中对话框分为两种形式,一种是标准对话框,另一种则是自定义对话框,在一般开发过程中标准对话框使用是最多的了,标准对话框一般包括 QMessageBox,QInputDialog,QFileDial ...