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


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

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

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

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

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

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

  1. Linux kernel 2.6.13 or higher
  2. Python 2.4 or higher

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

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

# uname -r 
# python -V

依存関係が満たされたら、pipを使用してpynotifyをインストールします。ほとんどのLinuxディストリビューションでは、python.orgからダウンロードしたPython 2> u003d 2.7.9またはPython3> u003d 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

デフォルトのリポジトリから利用可能なバージョンがインストールされます。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/tecmint.com)への変更を監視します。

# python -m pyinotify -v /var/www/html/tecmint.com

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

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

GithubでPyinotifyの詳細を確認してください:https://github.com/seb-m/pyinotify

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

同様のPythonモジュールまたは関連するLinuxツール/ユーティリティに出くわしたことがありますか?コメントでお知らせください。この記事に関して質問することもできます。