背景:
两台服务器之间实现数据同步,常用工具rsync,常见的应用为定时增量同步,然而这种同步需要linux来触发(常见的手段为定时任务),这样难免会有数据丢失的危险,并且rsync使用的是全盘or全目录(同步目标)扫描检测增量备份机制,这样对小文件还行。对海量大文件来讲,全部扫描既加重了服务器的负载,又耗时。
所以本文引入另外一个非常好用的工具inotify-tools(调用inotify借口)可以实现监控,监控对文件系统的删除、修改、增加、移动等操作,再使用rsync有目的的将增量文件进行同步意义重大。
下面是详细步骤:
步骤一:判断是否支持inotify
ls -al /proc/sys/fs/inotify/ ------判断是否支持inotify,下面三个文件存在,则支持。
total 0dr-xr-xr-x 0 root root 0 May 26 09:07 .dr-xr-xr-x 0 root root 0 May 26 08:41 ..-rw-r--r-- 1 root root 0 May 26 09:08 max_queued_events-rw-r--r-- 1 root root 0 May 26 09:08 max_user_instances-rw-r--r-- 1 root root 0 May 26 09:08 max_user_watches
步骤二 安装inotify-tools工具
wget http://sourceforge.net/projects/inotify-tools/files/inotify-tools/3.13/inotify-tools-3.13.tar.gz ------ 下载安装包tar -zxvf inotify-tools-3.13.tar.gz ------ 解压./configure --prefix=/usr/local/inotify-tools-3.13 ------ 软件配置./configure --help ------ 查看配置的相关参数echo $? ------ 检查配置是否成功(返回结果为0,成功)make && make install ------ 一切ok,编译并安装
步骤三 查看安装目录(使用tree查看目录各个文件的树)
ln -s inotify-tools-3.13 inotify-tools ------创建软连接 ls -al inotify-tools-3.13 total 24 drwxr-xr-x. 6 root root 4096 May 26 09:13 . drwxr-xr-x. 12 root root 4096 May 26 09:13 .. drwxr-xr-x. 2 root root 4096 May 26 09:13 bin -------两个主要命令所在 drwxr-xr-x. 3 root root 4096 May 26 09:13 include drwxr-xr-x. 2 root root 4096 May 26 09:13 lib drwxr-xr-x. 4 root root 4096 May 26 09:13 share
步骤四 命令使用方法探索
/usr/local/inotify-tools/bin/inotifywait --help -------命令使用方法查询/usr/local/inotify-tools/bin/inotifywatch --help -------命令使用方法查询
inotify-tools安装完成后,会生成inotifywait和inotifywatch两个指令。
inotifywait用于等待文件或文件集上的一个特定事件,它可以监控任何文件和目录设置,并且可以递归地监控整个目录树。
inotifywatch用于收集被监控的文件系统统计数据,包括每个inotify事件发生多少次等信息。
步骤五 案例
/usr/local/inotify-tools/bin/inotifywait -mrq -e create /opt -------监控opt下面是否新建目录或者文件
结论:打开两个终端,就可以明显看到,当/opt/下面创建新文件的时候,就会在另外一个终端中监控到。
应用:
/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib /opt \| while read files do rsync -av --delete -e ssh root@192.168.1.51 /opt /opt
本文出自 “要将技术进行到底” 博客,请务必保留此出处http://hpfan.blog.51cto.com/7707969/1417350