Files
使用 inotify 監控對文件的訪問
我想有一個觸發器,當某個程序訪問特定文件時,我想得到通知(即應該執行一個腳本)。如果我理解正確,這可以通過
inotify
.如果我有一個文件
/foo/bar.txt
,我將如何設置inotify
來監視該文件?我正在使用帶有核心 3.12 的 Debian Wheezy(我的核心支持 inotify)
簡單,使用inotifywait(安裝你的發行版的
inotify-tools
包):while inotifywait -e close_write myfile.py; do ./myfile.py; done
這有一個很大的限制:如果某些程序替換
myfile.py
為不同的文件,而不是寫入現有的myfile
,inotifywait
將會死掉。大多數編輯都是這樣工作的。要克服此限制,
inotifywait
請在目錄上使用:while true; do change=$(inotifywait -e close_write,moved_to,create .) change=${change#./ * } if [ "$change" = "myfile.py" ]; then ./myfile.py; fi done