rsync+inotify安装配置 实时同步文件

安装

#安装inotify 工具
[root@localhost ~]# yum install inotify-tools -y

常用命令

[[email protected] ~]# inotifywait -rm /data/
\\实时监控/data的所有事件(包括文件的访问、写入、修改、删除等)

[[email protected] ~]# inotifywait -mrq --timefmt ‘%Y/%m/%d-%H:%M:%S‘ --format ‘%T %w %f‘ > -e modify,create,delete,attrib,close_write,move /data/
\\记录修改、删除、创建、移动、修改属性 事件并详细时间输出

rsync实时同步脚本

#!/bin/bash
host=192.168.100.129
src=/www/bbs/
des=bbs
user=www
inotifywait -mrq --timefmt ‘%d/%m/%y %H:%M‘ --format ‘%T %w%f%e‘ -e modify,create,delete,attrib,close_write,move $src | while read files
do
rsync -avzrt --delete --progress $src $host::$des
echo "${files} was rsynced" >>/tmp/rsync.log 2>&1
done 

详细参数

参数说明
inotifywait
语法:
inotifywait [-hcmrq] [-e ] [-t ] [--format ] [--timefmt ] [ ... ]
参数:
-h,–help
输出帮助信息
@
排除不需要监视的文件,可以是相对路径,也可以是绝对路径。
–fromfile
从文件读取需要监视的文件或排除的文件,一个文件一行,排除的文件以@开头。
-m, –monitor
接收到一个事情而不退出,无限期地执行。默认的行为是接收到一个事情后立即退出。
-d, –daemon
跟–monitor一样,除了是在后台运行,需要指定–outfile把事情输出到一个文件。也意味着使用了–syslog。
-o, –outfile
输出事情到一个文件而不是标准输出。
-s, –syslog
输出错误信息到系统日志
-r, –recursive
监视一个目录下的所有子目录。
-q, –quiet
指定一次,不会输出详细信息,指定二次,除了致命错误,不会输出任何信息。
–exclude
正则匹配需要排除的文件,大小写敏感。
–excludei
正则匹配需要排除的文件,忽略大小写。
-t , –timeout
设置超时时间,如果为0,则无限期地执行下去。
-e , –event
指定监视的事件。
-c, –csv
输出csv格式。
–timefmt
指定时间格式,用于–format选项中的%T格式。
–format
指定输出格式。
%w 表示发生事件的目录
%f 表示发生事件的文件
%e 表示发生的事件
%Xe 事件以“X”分隔
%T 使用由–timefmt定义的时间格式

inotifywatch
语法:
inotifywatch [-hvzrqf] [-e ] [-t ] [-a ] [-d ] [ ... ]
参数:
-h, –help
输出帮助信息
-v, –verbose
输出详细信息
@
排除不需要监视的文件,可以是相对路径,也可以是绝对路径。
–fromfile
从文件读取需要监视的文件或排除的文件,一个文件一行,排除的文件以@开头。
-z, –zero
输出表格的行和列,即使元素为空
–exclude
正则匹配需要排除的文件,大小写敏感。
–excludei
正则匹配需要排除的文件,忽略大小写。
-r, –recursive
监视一个目录下的所有子目录。
-t , –timeout
设置超时时间
-e , –event
只监听指定的事件。
-a , –ascending
以指定事件升序排列。
-d , –descending
以指定事件降序排列。

可监听事件
access	文件读取
modify	文件更改。
attrib	文件属性更改,如权限,时间戳等。
close_write	以可写模式打开的文件被关闭,不代表此文件一定已经写入数据。
close_nowrite	以只读模式打开的文件被关闭。
close	文件被关闭,不管它是如何打开的。
open	文件打开。
moved_to	一个文件或目录移动到监听的目录,即使是在同一目录内移动,此事件也触发。
moved_from	一个文件或目录移出监听的目录,即使是在同一目录内移动,此事件也触发。
move	包括moved_to和 moved_from
move_self	文件或目录被移除,之后不再监听此文件或目录。
create	文件或目录创建
delete	文件或目录删除
delete_self	文件或目录移除,之后不再监听此文件或目录
unmount	文件系统取消挂载,之后不再监听此文件系统。
时间: 2024-10-29 19:08:44

rsync+inotify安装配置 实时同步文件的相关文章

利用rsync+inotify实现数据实时同步脚本文件

将代码放在Server端,实现其它web服务器同步.首先创建rsync.shell,rsync.shell代码如下: #!/bin/bash host1=133.96.7.100 host2=133.96.7.101 host3=133.96.7.102 src=/data/www/ dst1=web1 dst2=web2 dst3=web3 user1=web1 user2=web2 user3=web3 /usr/local/inotify/bin/inotifywait -mrq --ti

sersync基于rsync+inotify实现数据实时同步

一.环境描述 需求:服务器A与服务器B为主备服务模式,需要保持文件一致性,现采用sersync基于rsync+inotify实现数据实时同步 主服务器A:192.168.1.23 从服务器B:192.168.1.243 实时同步/var/atlassian目录到从服务器. 二.实施 1.从服务器192.168.1.243 rsync服务搭建 1.1安装软件包 wget http://rsync.samba.org/ftp/rsync/src/rsync-3.1.1.tar.gz tar xf r

[转帖]sersync基于rsync+inotify实现数据实时同步

sersync基于rsync+inotify实现数据实时同步 https://www.jianshu.com/p/d532a34e5cc5 前言 提到数据同步就必然会谈到rsync,一般简单的服务器数据传输会使用ftp/sftp等方式,但是这样的方式效率不高,不支持差异化增量同步也不支持实时传输. 原文地址:https://www.cnblogs.com/nbxcnxvcnb/p/12393252.html

rsync + inotify 实现数据实时同步

要求:两台Web服务器实现数据同步(我这里使用的是Centos 6.2-x64) 服务器一:172.16.11.126 服务器二:172.16.11.127 一.配置ssh备份源172.16.11.126(这里推荐使用专用的普通用户,注意相应的权限问题,如遇特殊情况使用root用户也可以,即不用考虑权限问题了. ) 1.新建备份用户rget rput 分别用来上传下载 [root@localhost ~]#  useradd rget [root@localhost ~]#  useradd r

rsync+inotify实现数据实时同步备份

在实际生产环境当中,我们总会遇见需要把一些重要数据进行备份,且随着应用系统规模的增大,对数据的安全性.可靠性.时效性要求还是比较高的, 因此我自己有在用rsync+inotify来实现数据实时同步备份,下面记录下操作步骤,以防日后自己忘记. 实验背景: 操作系统          IP         机器名        角色 CentOS 7.2       172.16.22.1     nginx01        数据源(服务器端) CentOS 7.2       172.16.22

rsync+inotify实现代码实时同步

rsync rsync是lunix系统下的数据镜像备份工具.使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH.rsync主机同步. 优点: 1).可以镜像保存整个目录树和文件系统. 2).可以很容易做到保持原来文件的权限.时间.软硬链接等等. 3).无须特殊权限即可安装. 4).快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件.rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽. 5).安全:可以使用s

rsync+inotify实现上行实时同步

rsync:一款开源备份工具:实现不同主机间镜像同步整个目录树:支持增量备份.权限.压缩等 rsync角色 发起端:负责发起rsync同步,操作客户机(相当于C端) 备份源:负责响应rsync的请求的服务器(相当于S端) 同步的方向 上行同步(上传):备份源提供文档的目标位置(date在发起端),发起端使用用户必须对目录有写入权限 下行同步(下载):备份源负责提供文档原始位置(date在备份源),发起端使用用户只需对data有读取权限即可 搭建rsync备份源 vim /etc/rsyncd.d

rsync+inotify实现数据实时同步

inotify简介 inotify是一种强大的.细粒度的.异步的文件系统事件监控机制,Linux内核从2.6.13开始引入,允许监控程序打开一个独立文件描述符,并针对事件集监控一个或者多个文件,例如打开.关闭.移动/重命名.删除.创建或者改变属性. 配置inotify需要rsync服务能直接传输数据(免密码传输). rsync配置请参考我的另一篇利用rsync进行数据同步. 服务端已配置完毕,inotify配置在客户端. 1.[[email protected] ~]# wget http://

rsync+Inotify数据的实时同步

1,安装完inotify-tools后,会在 /usr/local/bin 目录下新生成inotifywait和inotifywatch两个指令; inotifywait:用于等待一个特定事件; inotifywatch:用于收集被监控的文件系统统计数据,包括每个inotify事件发生多少次等信息; inotifywait命令常用选项如下: -m 是保持一直监听 -r 是递归查看目录 -q 是打印出事件 -e <event>, --event <event> 指定需要监控的特定事件