inotify
是 Linux 內核提供的一種文件系統事件監控機制,可以用來監控文件或目錄的變化,如創建、刪除、修改等。在 Debian 系統中,你可以使用 inotify-tools
這個軟件包來方便地使用 inotify
。
以下是在 Debian 系統中配置和使用 inotify
的步驟:
sudo apt update
inotify-tools
:sudo apt install inotify-tools
安裝完成后,你可以使用 inotifywait
和 inotifywatch
這兩個工具來監控文件系統事件。
inotifywait
可以實時監控文件或目錄的變化,并輸出相關信息。
示例:
inotifywait -m /path/to/directory -e create,delete,modify
-m
:持續監控。/path/to/directory
:要監控的目錄路徑。-e
:指定要監控的事件類型,如 create
(創建)、delete
(刪除)、modify
(修改)等。inotifywatch
可以統計一段時間內文件系統事件的發生次數。
示例:
inotifywatch -t 60 -e create,delete,modify /path/to/directory
-t
:指定監控的時間(秒)。/path/to/directory
:要監控的目錄路徑。假設你想監控 /home/user/documents
目錄下的所有文件和子目錄的變化,并將輸出保存到一個日志文件中,可以使用以下命令:
inotifywait -m -r -e create,delete,modify --format '%w%f %e' /home/user/documents >> /var/log/inotify.log 2>&1 &
-r
:遞歸監控子目錄。--format '%w%f %e'
:自定義輸出格式,%w%f
表示文件路徑,%e
表示事件類型。>> /var/log/inotify.log
:將輸出追加到日志文件中。2>&1
:將標準錯誤輸出重定向到標準輸出。&
:將命令放入后臺運行。inotify
有文件描述符數量的限制,可以通過調整內核參數來增加這個限制:echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
通過以上步驟,你可以在 Debian 系統中配置和使用 inotify
來監控文件系統的變化。