web-dev-qa-db-ja.com

「スクロール」ログファイルの表示

コマンドライン経由で、追跡したいログファイルがあります。

私が欲しいのは、基本的に、ログが更新されると更新され、ログファイルに新しい行が追加されるとテキストが上にスクロールするtailを持つことです。

コードを書かずにそれを行うものはありますか?

28
WernerCD

tailには-fオプションがあります。

manページから:

-f、--follow [= {name | descriptor}]は、ファイルが大きくなるにつれて追加データを出力します。 -f、-follow、および--follow = descriptorは同等です

したがって、次のように入力すると:

tail -f [path_and_name_of_logfile]-ログファイル自体が追加されると、ターミナルに出力が表示されます。

N.B. [path_and_name_of_logfile]はパラメーターなので、例を示します。

tail -f /var/log/messages

-n [number_of_lines]オプションと組み合わせると、ファイルの最後の[number_of_lines]から出力を開始できます-たとえば

tail -n 10 -f /var/log/Xorg.0.log

enter image description here


一部のプログラムは、ログファイルを定期的に変更し、古いファイルを新しい名前(log.0など)に移動してやり直します。

N.B. logrotateはこれを実行して、自分で実行しない他のプログラムのファイルをログに記録します。

tail -fは、名前が変更された後も古いファイルを追跡し続けます。

tail -Fは名前でファイルを追跡するため、新しいファイルを追跡するように切り替わります。

35
fossfreedom

tailは確かにこれを行うための通常の方法ですが、lessにも同じ機能があり、より便利な場合があることに注意してください。

lessでファイルを開いた場合、次を押すことができます Shift + F ファイルに追随させる(つまり、tail -fのように新しい行を表示します)。このモードを終了するには Ctrl + C

less+Fオプションで開始することもできます。その場合、そのモードではstartになります。一般的に+は、起動時に実行されるlessに「キーボードコマンド」を与えるために使用できます。

これにlessを使用すると、必要に応じてファイルを簡単に検索したり、他の領域を表示したりできるという利点があります。たとえば、ログファイルを使用して頻繁にそれを行いました。

18
Joachim Sauer

する

tail -f something.log

あなたがしたいことをしますか?

6
Florian Diesch

tailには、ファイルに追加されるデータを追跡して出力する2つの実装があります

  • ファイル記述子に従う
  • 特定の名前のファイルをフォローする

パラメーター-f--followおよび--follow=descriptortailを使用すると、ファイル記述子に従います。この方法では、ファイルの名前を変更しても追跡できますが、ファイルが回転すると追跡が停止します(異なるファイル記述子で新しいファイルが作成されます)。

ローテーションされるファイルを追跡する場合は、--follow=nameまたは-Fと等しい--follow=name --retryパラメーターを使用します。こうすることで、tailは定期的にファイルを開き、起こりうるローテーションを克服します。

4
Jawa

cczeが適切なツールだと思います。

色付けの同じことを行います。ログが下にスクロールするのを見ることができますが、行は色付きで印刷されるため(赤のエラーなど)、読みやすくなります。次のような方法で簡単に試すことができます:

tail -f /var/log/syslog | ccze
1
Gelma