开启两个窗口
5.4.1 测试create 在第一个窗口输入如下内容: [root@backup ~]# ls /backup [root@backup ~]# inotifywait -mrq --timefmt \'%y %m %d %H %M\' --format \'%T %w%f\' -e create /backup 在第二个窗口:输入如下内容 [root@backup ~]# cd /backup [root@backup backup]# touch chensiqi 此时回到第一个窗口出现如下内容: 17 03 11 07 19 /backup/chensiqi #命令说明 inotifywait:ionotify的命令工具 -mrq:-q只输入简短信息 -r,递归监控整个目录包括子目录 -m进行不间断持续监听 --timefmt 指定输出的时间格式 --format:指定输出信息的格式 -e create:制定监控的时间类型,监控创建create事件。 5.4.2 测试delte 第一个窗口输入如下信息: [root@backup ~]# inotifywait -mrq --timefmt \'%y %m %d %H %M\' --format \'%T %w%f\' -e delete /backup 第二个窗口输入如下信息: [root@backup backup]# rm -rf chensiqi 此时第一个窗口会出现如下信息: 17 03 11 07 29 /backup/chensiqi #命令说明: -e delete:指定监听的事件类型。监听删除delete事件 5.4.3 测试close_write 第一个窗口输入如下信息: inotifywait -mrq --timefmt \'%y %m %d %H %M\' --format \'%T %w%f\' -e close_write /backup 第二个窗口输入如下信息: [root@backup backup]# touch close_write.log [root@backup backup]# echo 111 >> close_write.log [root@backup backup]# rm -f close_write.log 此时第一个窗口会出现如下信息: 17 03 11 07 38 /backup/close_write.log 17 03 11 07 39 /backup/close_write.log #命令说明: -e close_write:指定监听类型。监听文件写模式的关闭。 5.4.4 测试move_to 第一个窗口输入如下信息: [root@backup ~]# inotifywait -mrq --timefmt \'%y %m %d %H %M\' --format \'%T %w%f\' -e moved_to /backup 第二个窗口输入如下信息: 此时第一个窗口会出现如下信息: [root@backup backup]# touch chensiqi [root@backup backup]# mv chensiqi chen [root@backup backup]# mkdir ddddd [root@backup backup]# mv chen ddddd/ 5.5 编写inotify实时监控脚本 #!/bin/bash backup_Server=172.16.1.41 /usr/bin/inotifywait -mrq --format \'%w%f\' -e create,close_write,delete /data | while read line do cd /data rsync -az ./ --delete rsync_backup@$backup_Server::nfsbackup --password-file=http://www.likecs.com/etc/rsync.password done提示:
上边那个脚本效率很低,效率低的原因在于只要目录出现变化就都会导致我整个目录下所有东西都被推送一遍。因此,我们可以做如下改动提高效率
#!/bin/bash Path=http://www.likecs.com/data backup_Server=172.16.1.41 /usr/bin/inotifywait -mrq --format \'%w%f\' -e create,close_write,delete /data | while read line do if [ -f $line ];then rsync -az $line --delete rsync_backup@$backup_Server::nfsbackup --password-file=http://www.likecs.com/etc/rsync.password else cd $Path &&\ rsync -az ./ --delete rsync_backup@$backup_Server::nfsbackup --password-file=http://www.likecs.com/etc/rsync.password fi done脚本可以加入开机启动:
echo "/bin/sh /server/scripts/inotify.sh &" >> /etc/rc.local
提示:
一个& 代表从后台开始运行该条命令。