rsync inotifywait 自动同步

参考

http://ilanni.blog.51cto.com/526870/1605200

inotify-tools与rsync集成

inotify-tools与rsync的集成主要是通过inotifywait命令与rsync命令集成来实现的,并且该集成主要是体现的rsync客户端,而rsync服务器端正需要按照正常的配置进行即可。

注意:该集成的主要目的是把rsync客户端需要备份的文件实时推送到rsync服务器上。

inotifywait命令详解

有关inotifywait的使用方法,我们可以通过它的帮助信息查看

-m表示始终保持事件监听状态。

-r表示递归查询目录。

-q表示打印出监控事件。

-e通过此参数可以指定要监控的事件。可监听的事件,如下:

access:访问,读取文件。

modify:修改,文件内容被修改。

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

move:移动,对文件进行移动操作。以及重命名,对文件进行重命名。

create:创建,生成新文件

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

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

delete:删除,文件被删除。

--timefmt是指定时间的输出格式,用于--format选项中的%T格式。

--format指定文件变化的详细信息输出格式。格式参数如下:

%w表示发生事件的目录

%f表示发生事件的文件

%e表示发生的事件

%T使用由--timefmt定义的时间格式

%Xe事件以“X”分隔

8.2 inotifywait命令实例

8.1章节我们讲解了inotifywait命令的参数,下面我们来实际使用下inotifywait命令。

我们要监测/home目录下所有文件及目录的变化情况,命令如下:

inotifywait -mrq --timefmt ‘%y/%m/%d/%H:%M‘ --format ‘%T %w %f %e‘ -e modify,delete,create,attrib,move,open,close,access /home/

inotifywatch参数说明如下:

-h:输出帮助信息。

-v:输出详细信息。

@:排除不需要监视的文件,可以是相对路径,也可以是绝对路径。

–-fromfile:从文件读取需要监视的文件或排除的文件,一个文件一行,排除的文件以@开头。

-z:输出表格的行和列,即使元素为空。

–-exclude:正则匹配需要排除的文件,大小写敏感。

–-excludei:正则匹配需要排除的文件,忽略大小写。

-r:监视一个目录下的所有子目录。

-t:设置超时时间。

-e:只监听指定的事件。该事件与inotifywait监听的事件类型一样。

-a:以指定事件升序排列。

-d:以指定事件降序排列。

inotifywatch命令实例

我们讲解了inotifywatch命令的参数,下面我们来实际使用下inotifywatch命令。

要求统计60秒内/home目录下文件系统的事件,使用如下命令:

inotifywatch -v -e modify,delete,create,attrib,move,open,close,access -e modify -t 60 -r /home

下面我们的所有操作都是在rsync客户端上进行的,其实inotifywait命令与rsync命令集成,我们所要做的只是写一个shell脚本即可

#!/bin/bash

src=/home/back/

dest=www

ip=xx

/usr/bin/inotifywait -mrq --timefmt ‘%d/%m/%y%H:%M‘ --format ‘%T %w %f‘ -e modify,delete,create,attrib $src | while read DATE TIME DIR FILE;

do

filechange=${DIR}${FILE}

/usr/bin/rsync -avz --delete --progress $src [email protected]$ip::$dest --password-file=/etc/rsyncd.password &

echo "At ${TIME} on ${DATE}, file $filechange was backed up via rsynce" >>/tmp/rsync.log 2>&1

done

上述脚本写好后,我们要给予其执行权限,然后配置其开机后台运行,并启动。使用如下命令:

chmod 700 inotify.sh

chmod u+x inotify.sh

ll |grep inotify.sh

echo "sh /root/inotify.sh > /dev/null &" >>/etc/rc.local

sh inotify.sh > /dev/null &

时间: 2024-10-06 01:28:31

rsync inotifywait 自动同步的相关文章

rsync+inotify自动同步

rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.它使用所谓的"Rsync演算法"来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快.所以通常可以作为备份工具来使用. 运行Rsync server的机器也叫backup server,一个Rsync server可同时备份多个client的数据:也可以多个Rsync server备份一个client的数据.Rsync可以搭配ssh甚至使用daem

rsync结合inotify实现数据自动同步

rsync+inotify rsync介绍 rsync是一个远程数据同步工具,可通过lan/wan快速同步多台主机间的文件.它使用所谓的"rsync演算法"来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快.所以通常可以作为备份工具来使用. 运行rsync server的机器也叫backup server,一个rsync server可同时备份多个client的数据:也可以多个rsync server备份一个client的数

利用Inotify和Rsync将web工程文件自动同步到多台应用服务器

背景:需要搭建一套跟线上一模一样的环境,用来预发布,这是其中的web分发的一个小模块的实现过程. 1 工具以及环境简介 1.1,Inotify工具 Inotify,它是一个内核用于通知用户空间程序文件系统变化的机制.众所周知,Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方,为了改善这种状况,开源社区提出用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬件设备发生了什么,从而能够更好地管理设备,给用户提供更好的服务,如hotplug.udev 和 ino

Rsync+Inotify实现文件自动同步

1>rsync概述 rsync的优点与不足 rsync与传统的cp.tar备份方式相比,rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的       备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等. 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务      系统中也逐渐暴露出了很多不足,首先,rsync同步数据时,需要扫描所有文件后进行比对,进行差量传输:如果文件数量达到

rsync+inotify 实现自动同步

一.定期同步和自动同步的区别 定期同步: 执行备份的时间固定,延期明显,实时性差 当同步源长期不变化时,密集的定期任务是浪费资源的. 自动同步: 一旦同步源出现变化,立即启动备份,实时性好 只要同步源无变化,则不执行备份,节省资源. 二.inotify 1.inotify 简介 inotify 是一个 Linux 内核特性,它监控文件系统,并且及时向专门的应用程序发出相关的事 件警告,比如删除.读.写和卸载操作等.要使用 inotify,必须具备一台带有 2.6.13 版本的内核操作系统. in

rsync自动同步软件安装和使用

一.介绍 (不想看直接可以跳过) Rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.Rsync本来是用以取代rcp的一个工具,它当前由 rsync.samba.org维护.Rsync使用所谓的"Rsync演算法"来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快.运行Rsync server的机器也叫backup server,一个Rsync server可同时备份多个client的数据:也可以

rsync+inotify实时同步

一.Rsync简介: rsync是一个远程数据同步工具,可通过lan/wan快速同步多台主机间的文件.它使用所谓的"rsync演算法"来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快.所以通常可以作为备份工具来使用. 运行rsync server的机器也叫backup server,一个rsync server可同时备份多个client的数据:也可以多个rsync server备份一个client的数据.rsync可以搭配

2-3-2 rsync+inotify备份同步数据

RSYNC = Remote Sync 远程同步 高效,一定要结合shell 官网:https://rsync.samba.org Author: Andrew Tridgell, Wayne Davison, and others Andrew Tridgell是Samba项目的领导者和主要开发人员,同时还在参与开发rsync\Linux Kernel. 与SCP的比较:scp=无法备份大量数据,类似windows的复制 rsync=边复制 ,边统计,边比较 Rsync特性和优点 可以镜像保存

rsync+inotify实时同步环境部署记录

随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足.首先,rsync在同步数据时,需要扫描所有文件后进行比对,进行差量传输.如果文件数量达到了百万甚至千万量级,扫描所有文件将是非常耗时的,并且正在发生变化的往往是其中很少的一部分,这是非常低效的方式.其次,rsync不能实时的去监测.同步数据,虽然它可以通过linux守护进程的方式进行触发同步,但是两次触发动作一定会有时间差,这样就导致了服务端和客户端数据可能出现不一致,无法在应