ログファイルはさまざまなログファイルに分散しています(基本的に、ログをローテーションするように設定されています)。日付と時間に基づいてログを抽出する必要があります。サンプル ログ ファイルには以下のものがあります。
2012.12.06 01:56:01 AUTH_SERVER.VMP_SYS [main - ] <INFO > Loaded properties
2012.12.06 01:56:01 AUTH_SERVER.VMP_SYS [main - ] <INFO > Initialized logging
2012.12.06 01:56:01 AUTH_SERVER.VMP_SYS [main - ] <CONFIG > Log levels =
以下の awk ワンライナーで試してみました...
awk -F - '"2012.12.06 01:56:01" < $1 && $1 <= "2012.12.08 04:30:00"' server.log server.log.1
これは必要なものを出力します...
しかし、for ループを使用して、これを使用して txt ファイルに抽出されたログ ファイル名のリストを実行したいと考えています。
find server.log* -exec ls -lth {} \; | awk '{print $9}' > logfilenames.txt
開始日時から終了日時まで正しいログ ファイル名を検索し、別のファイルに出力するために、for ループの入力として logfilenames コンテンツ (これには、そのディレクトリ内のログ ファイルのフル パスがあります) を使用する必要があります。
このスクリプトを完了するには、for ループのヘルプが必要です。