shell 脚本可以等待文件更改并采取行动吗?

dav*_*s21 12 linux bash openvpn shell-scripting

我想知道是否可以编写一个脚本来监视文件中的更改并在检测到更改时执行某些操作。

详细解释:

  1. OpenVPN 每 1 分钟将其状态写入一个文件。
  2. 我需要解析这个状态文件并采取行动。
  3. OpenVPN 在写入之前截断状态文件。
  4. 我尝试写入命名管道,但是当应用程序未能截断管道时,我在应用程序中遇到了不希望的(但不是致命的)错误。

Cak*_*mox 21

便宜又脏的方式:

stat -c %Y file当修改时间改变时循环并采取行动。

可能更好:

使用 inotify cron 服务监视文件修改事件并运行您的操作:

/path/to/your/file IN_MODIFY /path/to/your/script $#
Run Code Online (Sandbox Code Playgroud)