inotify 是 Linux 内核提供的一种文件系统事件监控机制,它可以实时监控文件或目录的变化,如创建、删除、修改等。在 Ubuntu 上配置 inotify 通常涉及以下几个步骤:
-
安装 inotify-tools:
inotify-tools是一个提供了inotifywait和inotifywatch命令行工具的软件包,可以用来监控文件系统事件。打开终端,运行以下命令来安装
inotify-tools:sudo apt-get update sudo apt-get install inotify-tools -
使用 inotifywait: 安装完成后,你可以使用
inotifywait命令来监控文件或目录。例如,要监控当前目录下的所有文件变化,可以使用以下命令:inotifywait -m -r .参数说明:
-m或--monitor:持续监控而不是执行一次。-r或--recursive:递归监控目录及其子目录。.:指定要监控的目录,这里表示当前目录。
你可以根据需要添加其他选项来定制监控行为,例如:
-e或--event:指定要监控的事件类型,如create,delete,modify等。-q或--quiet:减少输出信息,只显示事件发生时的简要信息。
例如,要监控当前目录下所有
.txt文件的创建和修改事件,可以使用:inotifywait -m -r -e create,modify --format '%w%f %e' --timefmt '%Y-%m-%d %H:%M:%S' -e modify,create . -
编写脚本: 如果你需要更复杂的监控逻辑,可以编写自己的脚本来使用
inotifywait。例如,创建一个名为monitor.sh的脚本:#!/bin/bash inotifywait -m -r -e create,delete,modify --format '%w%f %e' --timefmt '%Y-%m-%d %H:%M:%S' -e modify,create . | while read path action; do echo "The file '$path' appeared at $action" # 在这里添加你的逻辑 done赋予脚本执行权限并运行它:
chmod +x monitor.sh ./monitor.sh -
系统服务: 如果你想让
inotify监控作为系统服务运行,你可以创建一个 systemd 服务单元文件。例如,创建一个名为inotify.service的文件:[Unit] Description=Inotify File System Monitor [Service] ExecStart=/path/to/your/script/monitor.sh Restart=always User=yourusername [Install] WantedBy=multi-user.target将
/path/to/your/script/monitor.sh替换为你的脚本路径,yourusername替换为你的用户名。然后启用并启动服务:sudo systemctl enable inotify.service sudo systemctl start inotify.service
请注意,inotify 有文件描述符数量的限制,如果监控的文件或目录非常多,可能会达到这个限制。可以通过调整内核参数来增加这个限制。编辑 /etc/sysctl.conf 文件,添加或修改以下行:
fs.inotify.max_user_watches=524288
然后运行 sudo sysctl -p 来应用更改。
以上就是关于“inotify在ubuntu上怎样配置”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm