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

ansible複数アイテム登録&ファイル分割&ログ

引き続きansibleに関して。 Contents1 設定ファイルの書き換え1.1 ini_file1.2 lineinfile2 複数の値の置換3 ファイル分割3.1 ログ修正 設定ファイルの書き換 …

no image

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

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

no image

CI/CDに関する取り組み

CI/CDに関して知識としては5年以上昔から持ってましたが、実際にプロジェクトの中に取り組むことができるようになったのはつい最近なので、 取り込みが現実的なものに関してどのように取り組んでいくかといっ …

no image

PHP7に関して

先週きづいたのですが、PHPが5.6から7になりましたね。 まあ当分はまだPHP5で開発していきますが、herokuがいきなり7になり、アプリが動かないということが起こりました。 7対応させたかったん …

no image

guzzle

サイトへのログイン認証などHTTPアクセスを行うライブラリではHTTP2_requestが有名かと思いますが、すでに開発がとまっていることもあり、最近はguzzleというライブラリが使われているようで …

アーカイブ