web-dev-qa-db-ja.com

大きなApacheログファイルを過去1日に分割する

3GBのログファイルがあります。3GBのファイル全体をダウンロードせずに過去48時間を抽出する必要があります。ファイルを過去48時間に分割するにはどうすればよいですか。だから私はその単一のファイルしかダウンロードできませんか?

SSHに完全にアクセスでき、追加のツールをインストールできます。

4
Tom

ログファイルを使用してサーバーにシェルアクセスできると仮定して、試してみてください

egrep '2[789]/Sep/2011' logfile.big > /tmp/logfile.small

それは27日の初め、つまり48時間強に戻りますが、ファイル全体よりもはるかに小さいと予想され、すぐに実行できます。結果のファイルを転送する前にgzipで圧縮することを忘れないでください。これにより、処理がさらに高速化されます。

10
MadHatter

Apacheログパーサーを利用できます- Analog 。 Cで記述されているため、すばやく動作します。Analogでは、論理的に「FROM」および「TO」を表すコマンドラインオプション+ Fおよび+ Tを使用して時間範囲を指定できます。

2
Andrew