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

Laravel5.4インストール&ルーティング

来月からの仕事でLaravel5.4を使うことになったのでテストがてら自宅で勉強。 とりあえず下記リンクが参考になりました。 Laravel5.4でシンプルなCMSを作るチュートリアル 初めてのLar …

no image

vagrantでの静的ファイルのキャッシュがクリアされない

タイトルのまんまですが、vagrantでapacheを使ってまして、静的ファイルのキャッシュがクリアされないと言う問題が発生しました。 vagrantは結構長い間使ってましたが、今まで素のhtmlを書 …

no image

cakePHPでのマイグレーション

開発を続けているとデータベースのカラムの構造が変更するってことはしょっちゅうですが、管理がいい加減だとメンバー間でテーブルの構造が変わっていたり、本番と開発で違ってくるなどのトラブルが続出します。 そ …

no image

CentOS7でのIP固定

日ごろ業務ではwindowsにVitrtualBox+VagrantにCentOSをいれていたのですが、スペックにややネックがあったため、今は使っていないPCにCentOS7を入れて開発企図して使うこ …

no image

データのシリアライズ

おととしにJavaをやったときにでてきましたがSessionに情報を格納するときにでてきたシリアライズについて。 セッションはステートフルな状態を実現するための便利なデータの保存方法ですが、値をオブジ …