ログファイルの最後のn行のみを監視する方法は?


110

最後の15行のみを表示したいログファイルが増えています。私ができることは次のとおりです。

tail -n 15 -F mylogfile.txt

ログファイルがいっぱいになるとtail、最後の行が表示に追加されます。

最後の15行のみを表示し、更新後の最後の15行より前の行を削除するソリューションを探しています。アイデアはありますか?


28
端末ウィンドウのサイズを15行に変更します。
ジョナサン

1
それも良いものです。
マークオリビエティトー

3
@ジョナサン天才!
マルセルスウォレス

ジョナサンのコメントに賛成票を投じることができなかった、または15の賛成票を持つという風味を失った
jdero

回答:


151

watchを使用するだけで十分な場合があります。

$ watch tail -n 15 mylogfile.txt

1
すばらしいです!どうもありがとう。その過程で「監視」コマンドも学びます。
マークオリビエティトー

1
ファイルが2つのwatch更新間で15行を超える場合、このソリューションは機能しないことに注意してください。-nこの間隔を変更するために使用できます。
bfontaine

25

ウォッチを使用する場合は-n、各更新の間隔を制御するオプションを試してください。

したがって、次は2秒ごとにtailを呼び出します

$ watch -n 2 tail -n 15 mylogfile.txt

これは1秒ごとにポーリングします

$ watch -n 1 tail -n 15 mylogfile.txt

13

lessを実行してログファイルをストリーミングし、lessを使用してファイルをストリーミングするSHIFT + Fを押すことができます。 $ less mylogfile.txt 次に、SHIFT + Fを押すと、ストリーミングが開始されます。更新するログファイルを監視するのに便利だと思います。


1
それはとてもいいものです!
カイザー

8

たぶん、あなたは-d便利なパラメータを見つけるでしょう。

man watch

-d連続した更新間の違いを強調表示します。オプションは、ハイライトを永続的に変更するオプションの引数を読み取り、最初の反復以降に少なくとも1回変更されたものを確認できます。


1
キャッチもいい!
マークオリビエティトー

0

Solaris、AIX、HPUX、またはUNIXライク(Linuxを含む)では、スクリプトを使用してログなどを監視できます。

while true; 
    clear; 
    do date; 
    echo ;
    echo "MONITORING LOG IN "/path/to/file.log": "; 
    echo "Obs.: Last 20 lines of a logfile:
    echo ;
    tail -20 /path/to/file.log;
    echo ;
sleep 5; 
done
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.