Pyinotify 是一個簡單而有用的 Python 模組,它可用於在 Linux 中實時監控檔案系統更改。
作為一名系統管理員,你可以用它來監視你感興趣的目錄的更改,如 Web 目錄或程式資料儲存目錄及其他目錄。
它依賴於 inotify(在核心 2.6.13 中納入的 Linux 核心功能),它是一個事件驅動的通知程式,其通知透過三個系統呼叫從核心空間匯出到使用者空間。
pyinotiy 的目的是繫結這三個系統呼叫,並在其上提供了一個通用和抽象的方法來操作這些功能。
在本文中,我們將向你展示如何在 Linux 中安裝並使用 pyinotify 來實時監控檔案系統更改或修改。
依賴
要使用 pyinotify,你的系統必須執行:
Linux kernel 2.6.13 或更高
Python 2.4 或更高
如何在 Linux 中安裝 Pyinotify
首先在系統中檢查核心和 Python 的版本:
# uname -r
# python -V
一旦依賴滿足,我們會使用 pip 安裝 pynotify。在大多數 Linux 發行版中,如果你使用的是從 python.org 下載的 Python 2(>= 2.7.9)或者 Python 3(>=3.4)的二進位制,那麼 pip 就已經安裝了,否則,就按如下安裝:
# yum install python-pip [On CentOS based Distros]
# apt-get install python-pip [On Debian based Distros]
# dnf install python-pip [On Fedora 22+]
現在安裝 pyinotify:
# pip install pyinotify
它會從預設倉庫安裝可用的版本,如果你想要最新的穩定版,可以按如下從 git 倉庫 clone 下來:
# git clone https://github.com/seb-m/pyinotify.git
# cd pyinotify/
# ls
# python setup.py install
如何在 Linux 中使用 pyinotify
在下面的例子中,我以 root 使用者(透過 ssh 登入)監視了使用者 tecmint 的家目錄(/home/tecmint)下的改變,如截圖所示:
# python -m pyinotify -v /home/tecmint
監視目錄更改
接下來,我會觀察到任何 web 目錄(/var/www/html/tecmint.com)的更改:
# python -m pyinotify -v /var/www/html/tecmint.com
要退出程式,只要按下 Ctrl+C 。
注意:當你在執行 pyinotify 時如果沒有指定要監視的目錄,/tmp 將作為預設目錄。