成長するログファイルの新しいエントリのみを表示する


20
tail -f x.log

このコマンドを使用して、コマンドプロンプトで増加するログファイルを確認します。

実行後にファイルに書き込まれるログ行を表示するだけでtail -f、実行前にファイルに書き込まれたログには関心がありませんtail -f。ただしtail -f、開始時のコマンドは、最後の10行を取得して表示します。

これは、これらのログが新たに生成された(または)古いログである場合に混乱することがありますか?

だから、新しいエントリのみを出力するようにtail -fをカスタマイズするにはどうすればよいですか?

logs  tail 

回答:


31

あなたが試すことができます:

tail -n0 -f x.log

manページから:

-n、--lines = K
は、最後の10行ではなく、最後のK行を出力します。または、-n + Kを使用して、K番目から始まる行を出力します



2

less次のようなコマンドも使用できます

  1. less file_name.log (ログファイルが開き、ログファイルの最初のページが表示されます)
  2. shift+を押しますf(tail -fと同じように動作します)
  3. ログファイルでキーワードを検索する必要がある場合。ctrl+ cを押してテールモードを終了し、/キーワードおよび?キーワードとしてキーワードを検索します。

これは、成長しているログファイルの新しいエントリのみを表示しません。
不気味な

0

Dockerコンテナ内のエントリを監視する必要があるときに、このアプローチを作成しました。

LOG_COUNT=0
LOGS=/var/logs/your_logs

function HEART_BEAT() {
    LOG_COUNT_NEW=$(wc -l $LOGS | awk '{ print $1 }')
    tail -n $(( $LOG_COUNT_NEW - $LOG_COUNT )) $LOGS
    LOG_COUNT=$LOG_COUNT_NEW
}

お役に立てれば!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.