温馨提示×

ubuntu inotify如何检测文件修改时间

小樊
41
2025-08-27 22:17:20
栏目: 智能运维

在Ubuntu系统中,inotify是一个用于监控文件系统事件的Linux内核子系统。你可以使用inotifywait命令行工具来检测文件的修改时间。inotifywaitinotify-tools包的一部分,因此首先需要安装这个包。

  1. 安装inotify-tools
sudo apt-get update
sudo apt-get install inotify-tools
  1. 使用inotifywait监控文件修改时间:

创建一个名为monitor.sh的脚本文件,并添加以下内容:

#!/bin/bash

# 监控的文件路径
file_path="/path/to/your/file"

# 使用inotifywait监控文件修改事件
inotifywait -m -e modify "$file_path" |
while read path action file; do
  # 当文件被修改时,获取文件的修改时间
  mod_time=$(stat -c %y "$file_path")
  echo "File $file was modified at $mod_time"
done

/path/to/your/file替换为你要监控的文件路径。然后,给予脚本执行权限并运行它:

chmod +x monitor.sh
./monitor.sh

现在,每当文件被修改时,脚本都会输出文件的修改时间。

注意:inotifywait默认监控的最大文件描述符数量可能不足以满足你的需求。如果遇到问题,请尝试增加fs.inotify.max_user_watches的值。例如,将其设置为524288:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

0