Other
编程
Windows
Linux
Network
Cloud Computing
服务器
Application
Mysql
🗒️rsync+inotify数据实时同步
type
status
date
slug
summary
tags
category
icon
password
文章来源说明
🤔 一个简单的开头
利用监控服务(inotify),监控同步数据服务器目录中信息的变化
发现目录中数据产生变化,就利用rsync服务推送到备份服务器上
inotify
异步的文件系统事件监控机制,利用事件驱动机制,而无须通过诸如cron等的轮询机制来获取事件,linux内核从2.6.13起支持 inotify,通过inotify可以监控文件系统中添加、删除,修改、移动等各种事件
实现inotify软件
inotify-tools,sersync,lrsyncd
inotify+rsync使用方式
- inotify 对同步数据目录信息的监控
- rsync 完成对数据的同步
- 利用脚本进行结合
📝主旨内容
inotify+rsync 方式实现数据同步
查看服务器内核是否支持inotify
inotify内核参数(参数说明:man 7 inotify)
- max_queued_events:inotify事件队列最大长度,如值太小会出现 Event Queue Overflow 错误,默认值:16384
- max_user_watches:可以监视的文件数量(单进程),默认值:8192
- max_user_instances:每个用户创建inotify实例最大值,默认值:128
inotify参考文档
https://github.com/rvoicilas/inotify-tools/wiki
Inotify-tools包主要文件:
- inotifywait: 在被监控的文件或目录上等待特定文件系统事件(open close delete等)发生,常用于实时同步的目录监控
- inotifywatch:收集被监控的文件系统使用的统计数据,指文件系统事件发生的次数统计
inotifywait命令常见选项
-e 选项指定的事件类型 | 说明 |
create | 文件或目录创建 |
delete | 文件或目录被删除 |
modify | 文件或目录内容被写入 |
attrib | 文件或目录属性改变 |
close_write | 文件或目录关闭,在写入模式打开之后关闭的 |
close_nowrite | 文件或目录关闭,在只读模式打开之后关闭的 |
close | 文件或目录关闭,不管读或是写模式 |
open | 文件或目录被打开 |
moved_to | 文件或目录被移动到监控的目录中 |
moved_from | 文件或目录从监控的目录中被移动 |
move | 文件或目录不管移动到或是移出监控目录都触发事件 |
access | 文件或目录内容被读取 |
delete_self | 文件或目录被删除,目录本身被删除 |
unmount | 取消挂载 |
示例: -e create,delete,moved_to,close_write, attrib
示例
备机
主机
🤗总结归纳
inotify+rsync同步方式
inotify-tools来自epel源,rsync来自base源
inotify监控指定的目录,一但发生变化,触发告警,可以引用相关值通过rsync同步
AB两台主机,A主机inotify+rsync客户端,B主机rsync服务器
为了安全,rsync密码可以写入到配置文件中
rsyncuser@rsync服务器IP::backup
这里backup指的是/etc/rsyncd.conf文件中的[backup]
可以了解下inotify-tools包中的命令使用,rsync同步的机制参考文章
致谢:
有关Notion安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~
Loading...
Last update: 2023-08-08