このような行フォーマットのWebLogicログファイルの最後の10分間だけを調べる方法を探しています。
####<Sep 21, 2018 1:56:20 PM EDT> <Notice> <Stdout>
特定の文字列をgrepしたいのですが、失敗した場合は60秒待ってから再試行してください。これはRHEL 7の場合であり、sed、awkなどを使用できます。
過去10分の要件を緩和し、GNU coreutilsとgrepを使用する場合、これは非常に簡単です。
tail -f -s 60 -n +0 file.txt | grep -m 1 pattern
行全体(-n +0
)から開始してファイル全体を末尾に移動し、-s
秒ごとにポーリングします。-m
が一致すると、grepが停止します。
1回限りのインタラクティブな検索では、日付の解析を気にせず、最初にtail -n
で開始行を手動で変更します。日付の解析は、適切なモジュール(Python、Perl)を使用して、お好みのスクリプト言語でスクリプトを作成することで可能です。
最後に、ログの検索エンジンが必要な場合は、Graylog、ELK、Splunk、Log Insight、LogRhythmなどのイベント管理システムを実装してください。