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

简介

Inotify 可监控文件系统操作,比如读取、写入和创建,并且及时向专门的应用程序发出相关的事件警告,比如删除、读、写和卸载操作等,同时它还可以跟踪活动的源头和目标等细节
Inotify的反应非常灵敏,用法也简单,并且相比cron任务的繁忙轮询来看高效得多

前期准备

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

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

部署SSH免密登陆

[root@master ~]# ssh-keygen
[root@master ~]# ssh-copy-id root@192.168.29.138

#验证免密登陆
[root@master ~]# ssh root@bak

master主机部署inotify工具

[root@master ~]# tar -zxvf inotify-tools-3.13.tar.gz
[root@master ~]# cd inotify-tools-3.13
[root@master ~]# ./configure
[root@master ~]# make && make install

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

inotifywait常用参数

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

编写监控脚本

[root@master ~]# 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/ root@192.168.29.138:/tmp/backup
		#记录日志
		echo "出现事件$events" >> /var/log/rsync.log 2>&1
	done

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

测试验证

添加文件

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

修改文件内容

[root@master ~]# echo "haha" > /tmp/note/file1  
#查看备份效果
[root@bak ~]# cat /tmp/backupfile1 
haha

修改文件权限

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

移动文件

[root@master ~]# mkdir /tmp/note/a
[root@master ~]# mv /tmp/note/file2 /tmp/note/file3  /tmp/note/a
#查看备份效果
[root@bak ~]# ls /tmp/backup/
a  file1  file4  file5
[root@bak ~]# ls /tmp/backup/a/
file2  file3

删除文件

[root@master ~]# rm -rf /tmp/note/a
#查看备份效果
[root@bak ~]# ls /tmp/backup/
file1  file4  file5

查看日志

[root@master ~]# 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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值