RSYNC+inotify实时同步文件

您所在的位置:网站首页 循序渐进健身原则包括什么 RSYNC+inotify实时同步文件

RSYNC+inotify实时同步文件

2024-07-16 19:30:19| 来源: 网络整理| 查看: 265

摘要

在企业日常web应用中,某些特殊的数据需要要求保持跟服务器端实时同步,那我们该如何来配置呢?如何来实现呢?这里可以采用rsync+inotify来实现需求。

Inotify简介

Inotify 是一个 Linux特性,它监控文件系统操作,比如读取、写入和创建。Inotify 反应灵敏,用法非常简单,并且比 cron 任务的繁忙轮询高效得多。

Inotify,它是在内核 2.6.13 版本中引入的一个新功能,它为用户态监视文件系统的变化提供了强大的支持,允许监控程序打开一个独立文件描述符,并针对事件集监控一个或者多个文件,例如打开、关闭、移动/重命名、删除、创建或者改变属性。

在inotify 的前身是 dnotify。由于 dnotify 的局限性太大,加之用户始终都希望用到更好的产品。因此,inotify 顺理成章的取代了 dnotify。

Rsync安装完毕后,需要安装inotify文件检查软件。同时为了同步的时候不需要输入密码,这样可以使用ssh免密钥方式进行同步。

Rsync认证方式

两种方式

rsync-daemon

ssh

注意:在使用rsync时,同步端和被同步端都必须安装rsync程序。

1)rsync-daemon认证

在rsync-daemon认证方式下,默认监听tcp的873端口

在rsync-daemon认证下,rsync可以把密码写入到一个文件中。

注意:被同步端的rsync必须启动,配置文件。同步端可以不起动服务,但必须有这个应用。

2)ssh认证

通过ssh隧道进行传输,类似于scp工具,同步操作不在局限于rsync中定义的同步文件夹,并且双方只要安装rsync,也不要双方启动rsync。

Rsync安装配置参考我另一篇文章:https://www.yangxingzhen.com/archives/863

这里采用Rsync基于SSH认证方式+inotify实时同步

服务端IP:192.168.8.7

客户端IP:192.168.8.8

inotify安装配置

1)下载inotify-tools安装包

[root@localhost ~]# wget -c http://mirrors.yangxingzhen.com/inotify-tools/inotify-tools-3.14.tar.gz

RSYNC+inotify实时同步文件_发行版

2)解压,安装

[root@localhost ~]# tar zxf inotify-tools-3.14.tar.gz

[root@localhost ~]# cd inotify-tools-3.14

[root@localhost inotify-tools-3.14]# ./configure --prefix=/usr/local/inotify

[root@localhost inotify-tools-3.14]# make && make install

RSYNC+inotify实时同步文件_IP_02

RSYNC+inotify实时同步文件_文件系统_03

3)配置免密钥认证,这里不再介绍,SSH免密钥认证可以参考我另一篇文章:SSH免密钥认证

4)编写脚本

[root@localhost ~]# vim rsync_inotify.sh

#脚本内容如下

1. #!/bin/sh2. #2017-12-17 22:05:293. #by author 、、、小柒4. 5. #本地需要同步的目录6. SRC=/test/7. ##远程目录8. DATA=/test/9. ##远程同步IP10. IP=192.168.8.811. inotifywait -mrq --timefmt '%Y-%m-%d-%H:%M' --format '%T %w %f' -e modify,delete,create,attrib,move $SRC | while read file12. do13. rsync -aP --delete $SRC root@$IP:$DATA14. done

保存退出~~

5)在服务端启动该脚本,创建测试文件

[root@localhost ~]# ln -s /usr/local/inotify/bin/* /usr/sbin            //创建软连接

[root@localhost ~]# mkdir /test

[root@localhost ~]# sh -x rsync_inotify.sh

[root@localhost ~]# cd /test/

[root@localhost test]# touch test.txt

RSYNC+inotify实时同步文件_发行版_04

6)在客户端查看是否同步,如有数据代表同步

RSYNC+inotify实时同步文件_IP_05

#实时同步成功~~~

PS:创建文件、删除文件、移动文件(重命名)、访问文件、修改文件都会被记录

7)后台运行此脚本

[root@localhost ~]# nohup sh rsync_inotify.sh &

注:日志会记录到nohup.out文件

其他Linux发行版安装方法可以参见:https://github.com/rvoicilas/inotify-tools/wiki#wiki-getting

inotifywait命令

Inotify一种强大的、细粒度的、异步文件系统监控机制,它满足各种各样的文件监控需要,可以监控文件系统的访问属性、读写属性、权限属性、删除创建、移动等操作,也就是可以监控文件发生的一切变化。。

inotify-tools是一个C库和一组命令行的工作提供Linux下inotify的简单接口。inotify-tools安装后会得到inotifywait和inotifywatch这两条命令:

1)inotifywait命令可以用来收集有关文件访问信息,Linux发行版一般没有包括这个命令,需要安装inotify-tools,这个命令还需要将inotify支持编译入Linux内核,好在大多数Linux发行版都在内核中启用了inotify。 2)inotifywatch命令用于收集关于被监视的文件系统的统计数据,包括每个 inotify 事件发生多少次。

开始之前需要检测系统内核是否支持inotify:

使用uname -r命令检查Linux内核,如果低于2.6.13,就需要重新编译内核加入inotify的支持。inotify相关参数

inotify定义了下列的接口参数,可以用来限制inotify消耗kernel memory的大小。由于这些参数都是内存参数,因此,可以根据应用需求,实时的调节其大小:

1) /proc/sys/fs/inotify/max_queued_evnets表示调用inotify_init时分配给inotify instance中可排队的event的数目的最大值,超出这个值的事件被丢弃,但会触发IN_Q_OVERFLOW事件。

2)/proc/sys/fs/inotify/max_user_instances表示每一个real user id可创建的inotify instatnces的数量上限。

3)/proc/sys/fs/inotify/max_user_watches表示每个inotify instatnces可监控的最大目录数量。如果监控的文件数目巨大,需要根据情况,适当增加此值的大小。

inotifywait命令参数

-m是要持续监视变化。

-r使用递归形式监视目录。

-q减少冗余信息,只打印出需要的信息。

-e指定要监视的事件列表。

--timefmt是指定时间的输出格式。

--format指定文件变化的详细信息。

可监听的事件

事件

描述

access

访问,读取文件。

modify

修改,文件内容被修改。

attirb

属性,文件元数据被修改。

move

移动,对文件进行移动操作。

create

创建,生成新文件

open

打开,对文件进行打开操作。

close

关闭,对文件进行关闭操作。

delete

删除,文件被删除。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭