🗒️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

示例

notion image
备机
主机

🤗总结归纳

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安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~
 
 
FreshrssCloudflare 常用设置
Loading...
目录