skillup

技術ブログ

PHP サーバー・ネットワーク

inotifyによる検知

投稿日:

以前、pynotifyというpythonの検知プログラムを書きましたが、元々はinotifyというLinux上のパッケージのライブラリが元になっています。

以前調べたリンク

監視検知処理に関して

実務で「inotifyでログの状態を監視→新しく書き込まれたログを読み込み→特定の条件下でDBに登録」という処理があり、PHPでこれを実装したのでメモ。

inotifyのインストール

拡張モジュールとしてpeclからダウンロードしてphpのなかに組み込みます。

以前やったメールパーサーのインストールと近いです。

検知スクリプト

検知の直前でfseekをする意義ですが、読み込みかつ、ファイルの最終点を検知するために、fopenでポインタを開いた後、fseek($fp, 0, SEEK_END)で最終点に移動します。

あとはこのプログラムをsupervisorなどでデーモン化しておくと常駐したプログラムとなります。

参考リンク

[PHP] inotify関数を使ってログを監視するスクリプトを作ろう

http://php.net/manual/ja/book.inotify.php

phpの拡張モジュールに関して

PHPの設定をコマンドラインで確認する

【PHP】追加したモジュールが読み込めない時に疑うポイント

supervisorによるデーモン化

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

執筆者:


comment

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

関連記事

no image

Laravelのサービスプロバイダ

ミドルウェアやルーティング同様、惰性で使っていたサービスプロバイダについてめも。 Contents1 サービスプロバイダとは2 参考リンク・参考文献 サービスプロバイダとは Laravelでは特定のサ …

no image

Azure環境へのデプロイ

今までクラウドのインフラ環境というとほとんどがAWSだったのですが、C#+SQLServerの案件に携わっていることもあり、Azureを使うことに・・ 自学で簡単なアプリを作ってデプロイしたんですが、 …

no image

mod_aliasに関して

同一ドメインでパスによってルートディレクトを分けたい時。 この場合、apacheの設定ファイルをいじることになります。 一般的にはhttpd.confではなく*.confと言った設定ファイルを使い、エ …

no image

CentOS7の基本に関して

以前も学習しようとしましたが、CentOSの基礎について。 Contents1 デーモン2 ポートの割り当て3 systemdの役割 デーモン Linux上で動くサービスを提供をするプログラムのこと。 …

no image

インメモリデータベース redis

インメモリデータベースのredis(レディース)について。 キャッシュとして以前はmemcachedを使っていましたが、いろいろ多機能ということでredisをちょっと触ってみようかと。 Content …