Files

使用 inotify 監控對文件的訪問

  • July 22, 2019

我想有一個觸發器,當某個程序訪問特定文件時,我想得到通知(即應該執行一個腳本)。如果我理解正確,這可以通過inotify.

如果我有一個文件/foo/bar.txt,我將如何設置inotify來監視該文件?

我正在使用帶有核心 3.12 的 Debian Wheezy(我的核心支持 inotify)

根據超級使用者Gilles的說法:

簡單,使用inotifywait(安裝你的發行版的inotify-tools包):

while inotifywait -e close_write myfile.py; do ./myfile.py; done

這有一個很大的限制:如果某些程序替換myfile.py為不同的文件,而不是寫入現有的myfileinotifywait將會死掉。大多數編輯都是這樣工作的。

要克服此限制,inotifywait請在目錄上使用:

while true; do
  change=$(inotifywait -e close_write,moved_to,create .)
  change=${change#./ * }
  if [ "$change" = "myfile.py" ]; then ./myfile.py; fi
done

引用自:https://unix.stackexchange.com/questions/134615