在日常运维或开发中,我们经常需要监控某个目录下的文件变化,比如新增、修改或删除操作。特别是在网络环境中,当多个服务器需要保持文件同步时,Linux网络目录监控就显得尤为重要。本教程将从零开始,教你如何使用 inotify 工具实现对目录的实时监控,并配合脚本完成自动同步。
inotify 是 Linux 内核提供的一种文件系统事件监控机制。它允许程序监听指定文件或目录的变化(如创建、修改、删除等),而无需轮询检查。这使得监控效率极高,非常适合用于实时文件监控场景。
大多数 Linux 发行版默认未安装 inotify-tools,我们需要手动安装:
Ubuntu/Debian:
sudo apt updatesudo apt install inotify-tools -y CentOS/RHEL/Fedora:
sudo yum install epel-release -ysudo yum install inotify-tools -y 假设我们要监控 /var/www/html 目录,可以使用以下命令:
inotifywait -m -r -e create,modify,delete /var/www/html 参数说明:
-m:持续监控(不退出)-r:递归监控子目录-e:指定监听的事件类型(create 新建、modify 修改、delete 删除)下面是一个简单的 Bash 脚本,用于监控本地目录并将变化实时同步到远程服务器(需配置 SSH 免密登录):
#!/bin/bashLOCAL_DIR="/var/www/html"REMOTE_USER="user"REMOTE_HOST="192.168.1.100"REMOTE_DIR="/var/www/html"inotifywait -m -r -e create,modify,delete "$LOCAL_DIR" --format '%w%f %e' | while read file eventdo echo "[$(date)] 文件 $file 发生事件: $event" rsync -avz --delete "$LOCAL_DIR/" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/"done 保存为 sync_monitor.sh,并赋予执行权限:
chmod +x sync_monitor.sh./sync_monitor.sh 这样,每当本地目录发生变化,就会自动通过 rsync 同步到远程服务器,实现网络目录同步。
/proc/sys/fs/inotify/max_user_watches 查看和调整)。nohup 后台运行。通过 inotify 和简单的 Bash 脚本,我们可以轻松实现 Linux 下的实时文件监控与网络目录同步。这种方法资源占用低、响应快,非常适合用于 Web 服务器集群、日志收集、备份系统等场景。希望这篇教程能帮助你掌握这项实用技能!
关键词:inotify, Linux文件监控, 网络目录同步, 实时文件监控
本文由主机测评网于2025-12-01发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025121612.html