运维开发网

Centos7部署rsync配合inotify进行系统文件实时备份

运维开发网 https://www.qedev.com 2020-07-25 11:58 出处:51CTO 作者:wx5ed6455937203
简介Inotify可监控文件系统操作,比如读取、写入和创建,并且及时向专门的应用程序发出相关的事件警告,比如删除、读、写和卸载操作等,同时它还可以跟踪活动的源头和目标等细节Inotify的反应非常灵敏,用法也简单,并且相比cron任务的繁忙轮询来看高效得多前期准备准备两台Centos7虚拟机,配置IP地址和hostname,同步系统时间,修改IP地址和Hostname映射iphostname角色1

简介

Inotify 可监控文件系统操作,比如读取、写入和创建,并且及时向专门的应用程序发出相关的事件警告,比如删除、读、写和卸载操作等,同时它还可以跟踪活动的源头和目标等细节

Inotify的反应非常灵敏,用法也简单,并且相比cron任务的繁忙轮询来看高效得多

前期准备

准备两台Centos7虚拟机,配置IP地址和hostname,同步系统时间,关闭防火墙和seLinux,修改IP地址和Hostname映射

ip hostname 角色
192.168.29.132 master 主服务器
192.168.29.138 bak 备份服务器

部署SSH免密登陆

[[email protected] ~]# ssh-keygen
[[email protected] ~]# ssh-copy-id [email protected]

#验证免密登陆
[[email protected] ~]# ssh [email protected]

master主机部署inotify工具

[[email protected] ~]# tar -zxvf inotify-tools-3.13.tar.gz
[[email protected] ~]# cd inotify-tools-3.13
[[email protected] ~]# ./configure
[[email protected] ~]# make && make install

#安装完成会产生两个命令
[[email protected] ~]# ls /usr/local/bin/
inotifywatch #看守
inotifywait  #等待

inotifywait常用参数

-m:监控事件
-q:安静模式,仅打印事件内容
-r:递归监控目录
-e:指定监控的事件
--delete:被监控目录中删除的文件在备份目录中也同步删除

编写监控脚本

[[email protected] ~]# vi monitor_note.sh 
#!/bin/bash
#实时监控文件的事件为创建、修改、移动、删除、属性
#当读到事件时,则把改变内容推给备份机
/usr/local/bin/inotifywait -mrq -e modify,delete,create,attrib,move  /root/note |while read events
    do
        #同步备份
        rsync -a --delete /tmp/note/ [email protected]:/tmp/backup
        #记录日志
        echo "出现事件$events" >> /var/log/rsync.log 2>&1
    done

#增加可执行权限
[[email protected] ~]# chmod +x monitor_note.sh
#后台执行脚本
[[email protected] ~]# ./monitor_note.sh &

测试验证

添加文件

[[email protected] ~]# mkdir /tmp/note
[[email protected] ~]# cd /tmp/note/
[[email protected] note]# touch file{1..5}
#查看备份效果
[[email protected] ~]# ls /tmp/backup/
file1  file2  file3  file4  file5

修改文件内容

[[email protected] ~]# echo "haha" > /tmp/note/file1  
#查看备份效果
[[email protected] ~]# cat /tmp/backupfile1 
haha

修改文件权限

[[email protected] ~]# chmod +x /tmp/note/file5
#查看备份效果
[[email protected] ~]# ls -al /tmp/backup/
-rwxr-xr-x  1 root root   0 7月  23 19:36 file5

移动文件

[[email protected] ~]# mkdir /tmp/note/a
[[email protected] ~]# mv /tmp/note/file2 /tmp/note/file3  /tmp/note/a
#查看备份效果
[[email protected] ~]# ls /tmp/backup/
a  file1  file4  file5
[[email protected] ~]# ls /tmp/backup/a/
file2  file3

删除文件

[[email protected] ~]# rm -rf /tmp/note/a
#查看备份效果
[[email protected] ~]# ls /tmp/backup/
file1  file4  file5

查看日志

[[email protected] ~]# cat /var/log/rsync.log 
出现事件/tmp/note/ CREATE file1
出现事件/tmp/note/ ATTRIB file1
出现事件/tmp/note/ CREATE file2
出现事件/tmp/note/ ATTRIB file2
出现事件/tmp/note/ CREATE file3
出现事件/tmp/note/ ATTRIB file3
出现事件/tmp/note/ CREATE file4
出现事件/tmp/note/ ATTRIB file4
出现事件/tmp/note/ CREATE file5
出现事件/tmp/note/ ATTRIB file5
出现事件/tmp/note/ MODIFY file1
出现事件/tmp/note/ ATTRIB file5
出现事件/tmp/note/ CREATE,ISDIR a
出现事件/tmp/note/ MOVED_FROM file2
出现事件/tmp/note/a/ MOVED_TO file2
出现事件/tmp/note/ MOVED_FROM file3
出现事件/tmp/note/a/ MOVED_TO file3
出现事件/tmp/note/a/ DELETE file2
出现事件/tmp/note/a/ DELETE file3
出现事件/tmp/note/a/ IGNORED
出现事件/tmp/note/ DELETE,ISDIR a

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号