skillup

技術ブログ

サーバー・ネットワーク

監視検知処理に関して

投稿日:

実務で監視のスクリプトを書くことがあったんでメモしときます。

監視検知とは例えばあるディレクリに変化(ファイルの作成・更新・削除など)があった時に、それをトリガーにして何らかの処理を行うと言う仕組みになります。

私が行ったのはあるディレクリを監視しておき、画像がダウンロードされたら、自動的にあるシェルスクリプトを走らせて、他の画像と合成すると言う処理です。

色々と調べたので(私ではなくて上司に相当する人ですが(汗))ここでメモります。

incrond

Linuxには標準で入っているようです。名前の通り、cronが時間でトリガーになるように、こちらはイベントでトリガーになります。

簡単に使えそうだったのですが、いかんせん再帰処理ができず、特定フォルダを監視してもその最下部まで監視できないと言う欠陥があるため、ボツに。

incronを使って見た

inotify

これまでLinux標準で入ってます。

情報もそこそこあり、簡単に使えそうですが、主にサーバー監視などに使われる用途(変更されたファイルの統計情報などをだす)で今回の用途にそぐわなかったので却下。

inotify-toolsでファイルやディレクトリを監視する

Watcher

採用したのはこれです。

  • 起動までのスクリプトが簡単
  • 再帰処理ができる(あるディレクトリを監視したらその下まで全て対象)
  • 変更されたファイルを引数として任意のスクリプトを稼働させられる

Python2.7が必須要件なようです。

再帰的にフォルダを監視できるincronライクなコマンド『Watcher』

基本的にはずっと起動させて置くだけで自然に検知処理が走ります。ログがちょっと見にくいかな・・・

Gitのソース

https://github.com/splitbrain/Watcher

注意点

監視するフォルダに制限数があり、ディフォでは8192個でした。増やすこともできますが、メモリ諸費など何らかの負荷がかかる可能性があるので要注意です。

 

-サーバー・ネットワーク
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

OSI参照モデル イーサネットとMACアドレス

OSI参照モデルのレイヤー1とレイヤー2で必要不可欠な規格がイーサネットです。 有線ネットワークであればほぼこの規格を採用していると思って間違いないでしょう。 MACアドレスでコンピューターを識別する …

no image

nginxインストール(サブディレクトリでcakePHPを使いたいとき)

以前nginxのインストールを行いましたが、理解が浅かったようで今回すげーはまりました(汗) ガチンコ塾でもいっていますが、覚え始めの時はコピペでもいいですが(最初から100%の理解は非現実的)、慣れ …

no image

herokuネタ(頻出コマンドなど)

10月末ぐらいから使っているPaasのherokuについてよく使うコマンドについて Contents1 アカウント開設&スタート2 基本的な使い方 アカウント開設&スタート http://skill- …

no image

firewall復習 ansibleコマンドもかねて

CentOS7ではファイアーウォールの設定をfirewallというコマンドで行います。要はportのブロックですね。 以前下記リンクでもfirewallについて書いたんですが、あまり理解もできていなか …

no image

シェル基礎2

シェルコマンド使い始めて数年たちますが、いまだに知らないことはおおいですし、早く知っとけばよかった的なこともたくさんあります。 そんな小ネタ集を alias よく使うコマンドを別名で登録することができ …