利用inotify和rsync服务实现数据同步

本文介绍了如何利用inotify监控文件系统变化,结合rsync实现实时数据同步。首先,详细讲解了inotify的内核参数、安装及主要工具inotifywait和inotifywatch的使用。接着,阐述了rsync的安装和配置过程。最后,通过创建inotify_rsync.sh脚本,完成了从监控到同步的完整流程,确保了文件系统变更时的数据备份。
摘要由CSDN通过智能技术生成

一、inotify使用方式

在生产中有一种需求是,当目录下的文件数据发生变化时,就将数据备份到备份服务器上。实现这样的需求需要做到以下三点:

  • inotify 对同步数据目录信息的监控
  • rsync 完成对数据的同步
  • 利用脚本进行结合

inotify:

异步的文件系统事件监控机制,利用事件驱动机制,而无须通过诸如cron等的轮询机制来获取事件,linux内核从2.6.13起支持 inotify,通过inotify可以监控文件系统中添加、删除,修改、移动等各种事件

实现inotify软件:

inotify-tools,sersync,lrsyncd

我们这里使用inotify-tools

1.1、inotify内核参数

ll /proc/sys/fs/inotify #列出下面的文件,说明服务器内核支持inotify
-rw-r--r-- 1 root root 0 Dec 7 10:10 max_queued_events
-rw-r--r-- 1 root root 0 Dec 7 10:10 max_user_instances
-rw-r--r-- 1 root root 0 Dec 6 05:54 max_user_watches

参数说明:参看man 7 inotify

max_queued_events:inotify事件队列最大长度,如值太小会出现 Event Queue Overflow 错误,默认值:16384
max_user_watches:可以监视的文件数量(单进程),默认值:8192
max_user_instances:每个用户创建inotify实例最大值,默认值:128

1.2、安装inotify

yum install epel-release -y
yum install inotify-tools -y

1.3、inotify-tools包主要文件

  • inotifywait: 在被监控的文件或目录上等待特定文件系统事件(open close delete等)发生,常用于实时同步的目录监控
  • inotifywatch:收集被监控的文件系统使用的统计数据,指文件系统事件发生的次数统计

1.4、inotifywait命令常见选项

-m, --monitor 			# 始终保持事件监听
-d, --daemon			# 以守护进程方式执行,和-m相似,配合-o使用
-r, --recursive 		# 递归监控目录数据信息变化
-q, --quiet 			
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值