質問: プログラミング初心者です。 15分ごとにapacheのアクセスログを監視し、常に一定間隔で、 20回以上連続でアクセスしているクライアントを見つける度に、メールで通知するという機能を作成したいと考えています。 前提として、各クライアントはapacheにアクセスをする間隔は固定されているが、 アクセスする間隔はクライアントごとに異なる仕様になっています。 また、アクセスログは1日毎にログローテーションする仕様になっています。 上記の機能について、どういうふうに実装するのがいいのかご助言をお願い申し上げます。 ちなみに、pythonかawkで実装しようと思っています。
回答: > > 間隔2分のクライアントから連続アクセスされるのと、間隔1分のクライアントから、2回に1回アクセスの割合でアクセスされるのの区別が付かないですが、後者のケースは無い前提? > > > 後者が、無い前提としますね。 正確に60秒ごととかでログが残るとも限らない(61秒になるケースもあるでしょう)ので、 各クライアント毎の直近20回のアクセス時刻から、19個の時間間隔とその平均を求めて、その19個すべてについて平均からのずれが2秒以下。 とかでどうでしょうか? awkだとちょっと荷が重い気がします。ログの時刻のパースとかも必要だし。