fsniperを使用すると、監視対象のディレクトリを指定し、それらのディレクトリで新しいファイルが作成されたときにスクリプトを実行することができる。fsniperはディレクトリの監視にinotifyを利用するので、ファイルシステムで変化が起こると定義したアクションが直ちに実行される。これによりfsniperは定時実行のcronジョブより即時的で、より効率的となる。
ディレクトリ内に作成されるファイルをその場で自動的に処理するというと、まず思い浮かぶのはインターネットからダウンロードしたファイルを何らかの基準で分類することである。実際、fsniperのWebサイトに掲載されている最初の例がこれだ。
セキュリティ関連でもう1つの応用例が思い浮かぶ。ファイルサーバーを使ってメディアファイルのコレクションを読み取り専用で共有しているとしよう。現段階のセキュリティは、このサーバーにユーザーが新規のファイルを追加できないようにする、というものだ。fsniperを使えば、アップロード用のディレクトリを共有し、そこにアップロードされたファイルをスクリプトで読み取り専用のファイルサーバーへ自動的に転送できる。クライアントマシンに問題が生じてアップロードディレクトリにでたらめなファイルが書き込まれたとしても、fsniperから呼び出される転送スクリプトでアップロードディレクトリ内の新規ファイルを適切に管理すればよい。たとえば、ファイル名の異常やファイルタイプを確認して、でたらめなファイルを阻止し、正当なJPEGファイルだけを受け付けるようなことができる。最低限でもファイルの上書きを阻止するか、版管理システムに送って上書きするようなことは可能だろう。
fsniperではファイルの転送にスクリプトが使われるので、ファイルプロテクションを変更する、新規ファイルをデータベースに記録する、電子メールを送信する、RSSニュースフィードを更新して関係者に新規ファイルのことをすぐ通知する、といった処理を付加できる。fsniperから実行されるスクリプトでsudoやその他の機能を利用すれば、ファイルのユーザーや所有者の変更のようなユーザー本人に許可されていないアクションを実行することもできる。
fsniperはopenSUSE 11、Ubuntu Hardy、Fedora 9に同梱されていないが、通常の「./configure && make && sudo make install」という手順でソースからビルドできる。fsniperではファイル内のデータ種別の判定にlibmagicが利用されるため、あらかじめfile-develパッケージ(Fedora 9またはopenSUSE 11で実行する場合)かlibmagic-dev(Ubuntu Hardyで実行する場合)をインストールしておく必要がある。
