当前位置:   article > 正文

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

centos 实时同步备份

简介

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
  • 1
  • 2
  • 3
  • 4
  • 5

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  #等待
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

inotifywait常用参数

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

编写监控脚本

[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 &
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

测试验证

添加文件

[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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

修改文件内容

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

修改文件权限

[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
  • 1
  • 2
  • 3
  • 4

移动文件

[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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

删除文件

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

查看日志

[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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/145871
推荐阅读
相关标签
  

闽ICP备14008679号