以下の命名規則に従って、logs ディレクトリに複数のアクセス ログがあります。
access.log.1284642120
access.log.1284687600
access.log.1284843260
基本的に、ログは Apache によって 1 日ごとに「ローテーション」されるため、順番に並べ替えることができます。
それらを1つのログファイルとして扱うことができるように、「それらを次々に読み取る」ことを試みています。
my @logs = glob('logs/access.log.*');
上記のコードはすべてのログをグロブしますが、よくわかりません:
- ログはどの順序でアルファベット順に編成されますか?
- 「一意の IP からの最新のアクセス時刻」を確認したい場合、どうすればよいですか?
単一のアクセス ログを読み取り、これを簡単に確認できる Perl スクリプトがあります (私のアルゴリズムは、IP アドレスをキーとして、アクセス時間を値として使用する大きなハッシュを持ち、キーと値のペアをプッシュし続けることです) ...)。しかし、このプロセスのためだけに、すべてのアクセス ファイルを 1 つの一時ファイルにマージしたくありません。
助言がありますか?よろしくお願いします。