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

拡張子の取得

PHPで配列を取得する場合、下記のメソッドで一気に取得できます。 pathinfo( ファイルパス,PATHINFO_EXTENSION ) いままで正規表現使ったり、explodeでやったりといろん …

no image

Git+SSH鍵認証

鍵認証をともなったgitのpushやpullについて。 中央リポジトリに公開鍵がおいてあり、リモートリポジトリに秘密鍵を配置します。 ステップとしては以下の2ステップになります。実行時ユーザーのディレ …

no image

PHPMailerに関して(PHPのメール送信)

PHPのMailライブラリに関して。 今までmb_send_mailとかで誤魔化してましたが、以下のようにライブラリで送るケースのサンプル。 https://github.com/umanari145 …

no image

携帯サイト取得手法

PHPでスクレイピングの仕事をよくやるんですが、携帯サイトを取得してほしいという要望があり、少し調査をすることに。 携帯サイトといってもドメイン以下のディレクトリで/で区切ってsample.domai …

no image

ログ抽出コマンド特集 その1 cat+grep+sort

先日、メモリ使用率の調査に関して記事をかいたのですが、今度はそのログの収集や抽出をおこなってみようかと思います。 やりたいこと yyyy/MM/dd-HH:mm:ss  メモリ使用率(少数2桁まで)  …