Rsync+Inotify实时监听备份

说明,下面的inotify是建立在rsync的配置过程

大前提是rsync daemon 配置成功,rsync配置看上一遍博文,在客户端可以推拉数据,然后才能配置inotify服务----inotify是在客户端安装,监听需要备份的目录,然后推送到服务端

查看当前系统是否支持inotify

[[email protected] bier]# uname -r

2.6.32-431.el6.i686

[[email protected] bier]# ls -l /proc/sys/fs/inotify/

×üóá 0

-rw-r--r-- 1 root root 0 11 11 22:30 max_queued_events

-rw-r--r-- 1 root root 0 11 11 22:30 max_user_instances

-rw-r--r-- 1 root root 0 11 11 22:30 max_user_watches

#显示着三个文件证明支持

一、安装inotify服务

1)下载inotify 源码包

[[email protected] src]# cd /usr/local/src

提示: download inotify-tools

inotify-tools-3.14.tar.gz

2)编译安装inotify

[[email protected] src]# tar -xvf inotify-tools-3.14.tar.gz

[[email protected] src]# cd inotify-tools-3.14

[[email protected] inotify-tools-3.14]# ./configure --prefix=/usr/local/inotify-tools-3.14

make&make install

[[email protected] local]# ls

bin  games     lib      python  share

etc  include  inotify-tools-3.14  libexec  sbin    src

[[email protected] local]# cd inotify-tools-3.14/

[[email protected] inotify-tools-3.14]# ll

total 16

drwxr-xr-x. 2 root root 4096 Nov 10 03:21 bin  ==》inotify执行命令

drwxr-xr-x. 3 root root 4096 Nov 10 03:21 include ==》头文件

drwxr-xr-x. 2 root root 4096 Nov 10 03:21 lib ==》动态链接库文件

drwxr-xr-x. 4 root root 4096 Nov 10 03:21 share ==》帮助文档

inotify常用参数命令详解

[[email protected] inotify-tools-3.14]# ./bin/inotifywait –help

二、测试inotify

测试create文件

[[email protected] local]# /usr/local/inotify-tools-3.14/bin/inotifywait -mrq --timefmt ‘%d/%m/%y %H:%M‘ --format ‘%T %w%f‘ -e create /data

10/11/15 03:35 /data/backup.bat

提示:此命令是inotify监控的命令,m是持续监听,r是递归,q是只打印事件,后面是时间格式

-e是指定要监听的时间,data是监控的目录

另外新开一个窗口在data目录下创建文件touch backup.bat   发现上面监听的备份目录发生变化

以下操作都需要再另外开个窗口创建,删除,修改文件测试

测试delete

[[email protected] local]# /usr/local/inotify-tools-3.14/bin/inotifywait -mrq --timefmt ‘%d/%m/%y %H:%M‘ --format ‘%T %w%f‘ -e delete /data

测试close_write(写文件监听,就是写完就提示)

[[email protected] ~]$ /usr/local/inotify-tools-3.14/bin/inotifywait -mrq --timefmt ‘%d/%m/%y %H:%M‘ --format ‘%T %w%f‘ -e close_write /data

10/11/15 04:04 /data/aa.log

去掉时间格式显示,简化一下

[[email protected] ~]$ /usr/local/inotify-tools-3.14/bin/inotifywait –mrq  --format ‘%w%f‘ -e cteate /data

三、简单监听备份脚本

vim backup.sh

cmd="/usr/local/inotify-tools-3.14/bin/inotifywait"

$cmd -mrq --format ‘%w%f‘ -e create,close_write,delete /data|\

while read line

do

rsync -az $line [email protected]::bier --password-file=/etc/rsync.password

done

把管道后面的一行一行交给line处理,因为backup如果有变化是一个带路径的,上面实验过

提示:实时监听备份脚本,针对的是备份目录里面的文件,这个脚本删除就不行出错,因为他不是针对目录备份的

改进backup.sh

vim backup1.sh

cmd="/usr/local/inotify-tools-3.14/bin/inotifywait"

$cmd -mrq --format ‘%w%f‘ -e create,close_write,delete /data|\

while read line

do

[ ! -e "$line" ] && continue

rsync -az --delete $line [email protected]::bier --password-file=/etc/rsync.password

done

当文件不存在的时候就continue,避免了出错,因此这个脚本可以用来简单的创建文件备份使用

四、按照目录实时监听备份

host=192.168.3.188

src=/data

dst=bier

user=rsync_backup

rsync_passfile=/etc/rsync.password

inotify_home=/usr/local/inotify-tools-3.14/

if [ ! -e "$src" ] \

|| [ ! -e "${rsync_passfile}" ] \

|| [ ! -e "${inotify_home}/bin/inotifywait" ] \

|| [ ! -e "/usr/bin/rsync" ];

then

echo "Check File and Folder"

exit 9

fi

${inotify_home}/bin/inotifywait -mrq --format ‘%w%f‘ -e create,close_write,delete,attrib /$src|\

while read line

do

cd $src && rsync -aruz -R --delete ./ --timeout=100 [email protected]$host::$dst --password-file=${rsync_passfile} >/dev/null 2>&1

done

exit 0

加大关键参数

[[email protected] scripts]# cat /proc/sys/fs/inotify/max_user_watches

8192

[[email protected] scripts]# cat /proc/sys/fs/inotify/max_queued_events

16384

时间: 2024-08-15 14:11:40

Rsync+Inotify实时监听备份的相关文章

rsync+inotify实时备份

rsync简介 rsync有四种应用模式 1.shell本地模式 2.远程shellmoshi 3.查询模式 4.服务器模式 1.本地模式用于复制目录到另一个目录 rsync -av aa /bb 2.远程shell模式将本地目录复制到另外一个系统当中 rsync -av aa 192.168.0.10:bb 3.查询(列表)模式查看远程系统中目录的内容 rsync -a 192.168.0.10:bb 4.服务器模式基于C/S模式 服务器启用一个后台守护进程 用于接收或者发送文件 服务器地址

Rsync远程同步,实现下行 ,上行异地备份。配置rsync+inotify实时备份。

rsync作为一款最常用的备份工具,是linux/unix系统默认安装的基本组件之一. 本次实验环境: 1)VMware Workstation虚拟机环境 2)以CentOS7系统为实验对象,一台PC作为rsync源服务器,设置IP地址为,192.168.30.55 一台PC作为Rsync客户端,设置IP地址为,192.168.30.77.在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客户机的rsync同步操作的服务器称为同步源. 首先配置rsync源服务器, r

CentOS6.5实现rsync+inotify实时同步

1.架构 服务器端:192.168.202.135 客户端:192.168.202.129 2.rsync服务器端安装配置 yum install rsync -y    #安装rsync服务 为rsync服务提供配置文件: vim /etc/rsyncd.conf    #文件默认不存在,添加以下内容 uid = root    #启动服务进程的用户 gid = root    #启动服务进程的用户组 port = 873    #以守护进程启动rsync服务时监听的端口号 hosts all

rsync+inotify实时数据的同步实例

rsync+inotify实时数据的同步 一.rsync+inotify的组合为什么会出现?? rsync缺陷: 1.由于rsync在实施大量数据备份时,工作方式是扫描整个数据文 件,其实发生更改  的只是一小部分,导致过多的占用系统资源.                2.rsync不能实时的去监测.同步数据,虽然它可以通过linux守护进程的方式进行触发同步,但是两次触发动作一定会有时间差,这样就导致了服务端和客户端数据  可能出现不一致,无法在应用故障时完全的恢复数据. inotify优点

rsync远程同步及rsync+inotify实时同步

rsync远程同步及rsync+inotify实时同步 思维代入 正确.有效的备份方案是保障系统及数据安全的重要手段.在服务器中,通常会结合计划性任务.shell脚本来执行本地备份.但有时候为了提高备份的可靠性,异地备份也是非常有必要的.那下面就给大家介绍一种异地远程备份的方法:rsync远程备份. rsync简介 rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份.保持链接和权限,且采用优化的同步算法,在传输前执行压缩,因此非常适用于异地备份.镜像服务等应用

rsync+inotify实时同步案例

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

rsync+inotify实时数据同步单目录实战

rsync+inotify实时数据同步单目录实战 inotify是一个强大的.细粒度的.异步的文件系统事件监控机制,linux内核从2.6.13起加入了inotify支持,通过inotify可以监控文件系统中添加.删除.修改.移动等各种事件,利用这个内核接口,第三方软件可以监控文件系统下文件的各种变化情况,而inotify-tools正是实施监控的软件. inotify配置是建立在rsync服务基础上的配置过程 操作系统 主机名 网卡eth0 默认网关 用途 [email protected]

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

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

配置rsync+inotify实时同步

配置rsync+inotify实时同步Linux从2.6.13版内核开始提供了inotify通知接口,用来监控文件系统的各种变化情况,如文件的存取,删除,移动,修改内容及属性等.利用这个机制,可以实现文件异动警告,增量备份,针对目录或文件的变化及时做出响应. 将inotify机制与rsync工具结合,可以实现触发式备份(实时同步),只要原始位置的文档发生变化,则立即启动增量备份,否则处于静默等待状态,避免了按固定周期备份是存在的延迟性,周期过密等问题. 正因为inotify通知机制有Linux内