inotify简介
inotify是一种强大的、细粒度的、异步的文件系统事件监控机制,Linux内核从2.6.13开始引入,允许监控程序打开一个独立文件描述符,并针对事件集监控一个或者多个文件,例如打开、关闭、移动/重命名、删除、创建或者改变属性。
配置inotify需要rsync服务能直接传输数据(免密码传输)。
rsync配置请参考我的另一篇利用rsync进行数据同步。
服务端已配置完毕,inotify配置在客户端。
1.[root@backupclient ~]# wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz ##inotify下载
2.将安装包解压到/usr/local目录。
[root@backupclient ~]# tar -xzvf inotify-tools-3.14.tar.gz -C /usr/local/
3.创建安装目录。
[root@backupclient local]# mkdir inotify
4.inotify配置
[root@backupclient inotify-tools-3.14]# ./configure --prefix=/usr/local/inotify
5.编译于安装
[root@backupclient inotify-tools-3.14]# make&&make install
6.写一个脚本实现当客户端/tmp/tuwei/下的文件有变化时,把此目录下的数据自动同步到服务器端的/rsydata下
vim /server/scripts/inotify/inotify.sh
#!/bin/bash
host01=192.168.1.10
src=/tmp/tuwei/
dst=tuwei
user=rsync_backup
rsync_passfile=/etc/rsync.password
inotify_home=/usr/local/inotify
#judge the file and server,it is the basic
if [ ! -e "$src" ] \
|| [ ! -e "${rsync_passfile}" ] \
|| [ ! -e "${inotify_home}/bin/inotifywait" ] \
|| [ ! -e "/usr/bin/rsync" ];
then
echo "pls check your file and try again"
exit 1
fi
${inotify_home}/bin/inotifywait -mrq --timefmt ‘%d%m%y %H:%M‘ --format ‘%T %w%f‘ -e close_write,delete,modify,create,attrib $src \
| while read file
do
/usr/bin/rsync -az --delete $src $user@$host01::$dst --password-file=${rsync_passfile}
done
脚本内容如上。
修改脚本权限。chmod +x /server/scripts/inotify/inotify.sh
后台执行脚本 sh /server/scripts/inotify/inotify.sh &
[root@backupclient tuwei]# sh /server/scripts/inotify/inotify.sh &
[1] 15111
测试验证
测试前
服务端
[root@backupserver rsydata]# pwd
/rsydata
[root@backupserver rsydata]# ll
total 0
客户端
[root@backupclient tuwei]# pwd
/tmp/tuwei
[root@backupclient tuwei]# ll
total 0
客户端添加文件。
[root@backupclient tuwei]# touch {1..5}
[root@backupclient tuwei]# ll
total 0
-rw-r--r--. 1 root root 0 Apr 16 21:50 1
-rw-r--r--. 1 root root 0 Apr 16 21:50 2
-rw-r--r--. 1 root root 0 Apr 16 21:50 3
-rw-r--r--. 1 root root 0 Apr 16 21:50 4
-rw-r--r--. 1 root root 0 Apr 16 21:50 5
服务端
[root@backupserver rsydata]# ll
total 0
-rw-r--r-- 1 root root 0 Apr 16 21:50 1
-rw-r--r-- 1 root root 0 Apr 16 21:50 2
-rw-r--r-- 1 root root 0 Apr 16 21:50 3
-rw-r--r-- 1 root root 0 Apr 16 21:50 4
-rw-r--r-- 1 root root 0 Apr 16 21:50 5
客户端删除文件1 2
[root@backupclient tuwei]# rm -rf 1 2
[root@backupclient tuwei]# ll
total 0
-rw-r--r--. 1 root root 0 Apr 16 21:50 3
-rw-r--r--. 1 root root 0 Apr 16 21:50 4
-rw-r--r--. 1 root root 0 Apr 16 21:50 5
服务端
[root@backupserver rsydata]# ll
total 0
-rw-r--r-- 1 root root 0 Apr 16 21:50 3
-rw-r--r-- 1 root root 0 Apr 16 21:50 4
-rw-r--r-- 1 root root 0 Apr 16 21:50 5
其他操作类似。
原文地址:http://tuwei.blog.51cto.com/11040555/1916934