ウェブサイト検索

Pyinotify - Linux でファイルシステムの変更をリアルタイムで監視する


Pyinotify は、Linux でファイルシステムの変更をリアルタイムで監視するためのシンプルで便利な Python モジュールです。

システム管理者は、これを使用して、Web ディレクトリやアプリケーション データ ストレージ ディレクトリなどの対象ディレクトリに発生する変更を監視できます。

推奨読書: fswatch – Linux でのファイルとディレクトリの変更または変更を監視する

これはイベント駆動型通知機能であるinotify (カーネル 2.6.13 に組み込まれた Linux カーネル機能) に依存しており、その通知は 3 つのシステム コールを介してカーネル空間からユーザー空間にエクスポートされます。

pyinotiy の目的は、3 つのシステム コールをバインドし、それらの機能を操作するための共通かつ抽象的な手段を提供する実装をサポートすることです。

この記事では、Linux に pyinotify をインストールして使用し、ファイルシステムの変更をリアルタイムで監視する方法を説明します。

依存関係

pyinotify を使用するには、システムが実行されている必要があります。

  1. Linux カーネル 2.6.13 以降
  2. Python 2.4以降

Linux に Pyinotify をインストールする方法

まず、次のように、システムにインストールされているカーネルと Python のバージョンを確認することから始めます。

uname -r 
python -V

依存関係が満たされたら、pip を使用してpynotify をインストールします。ほとんどの Linux ディストリビューションでは、ダウンロードした Python 2 >=2.7.9 または Python 3 >=3.4 バイナリを使用している場合は、Pip がすでにインストールされています。 python.org からダウンロードする場合は、次のようにインストールします。

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

デフォルトのリポジトリから利用可能なバージョンがインストールされます。pyinotify の最新の安定したバージョンを探している場合は、示されているように git リポジトリのクローンを作成することを検討してください。

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/linux-console.net) への変更を監視します。

python -m pyinotify -v /var/www/html/linux-console.net

プログラムを終了するには、[Ctrl+C] を押すだけです。

: 監視するディレクトリを指定せずに pyinotify を実行すると、デフォルトで /tmp ディレクトリが考慮されます。 。

Pyinotify の詳細については、Github でご覧ください: https://github.com/seb-m/pyinotify

それは今のところすべてです!この記事では、Linux でファイルシステムの変更を監視するための便利な Python モジュールである pyinotify をインストールして使用する方法を説明しました。

同様の Python モジュールまたは関連する Linux ツール/ユーティリティを見つけたことがありますか?この記事に関して何か質問があれば、コメント欄でお知らせください。