コマンドライン経由で、追跡したいログファイルがあります。
私が欲しいのは、基本的に、ログが更新されると更新され、ログファイルに新しい行が追加されるとテキストが上にスクロールするtail
を持つことです。
コードを書かずにそれを行うものはありますか?
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
一部のプログラムは、ログファイルを定期的に変更し、古いファイルを新しい名前(log.0など)に移動してやり直します。
N.B. logrotateはこれを実行して、自分で実行しない他のプログラムのファイルをログに記録します。
tail -f
は、名前が変更された後も古いファイルを追跡し続けます。
tail -F
は名前でファイルを追跡するため、新しいファイルを追跡するように切り替わります。
tail
は確かにこれを行うための通常の方法ですが、less
にも同じ機能があり、より便利な場合があることに注意してください。
less
でファイルを開いた場合、次を押すことができます Shift + F ファイルに追随させる(つまり、tail -f
のように新しい行を表示します)。このモードを終了するには Ctrl + C
less
を+F
オプションで開始することもできます。その場合、そのモードではstartになります。一般的に+
は、起動時に実行されるless
に「キーボードコマンド」を与えるために使用できます。
これにless
を使用すると、必要に応じてファイルを簡単に検索したり、他の領域を表示したりできるという利点があります。たとえば、ログファイルを使用して頻繁にそれを行いました。
する
tail -f something.log
あなたがしたいことをしますか?
tail
には、ファイルに追加されるデータを追跡して出力する2つの実装があります
パラメーター-f
、--follow
および--follow=descriptor
、tail
を使用すると、ファイル記述子に従います。この方法では、ファイルの名前を変更しても追跡できますが、ファイルが回転すると追跡が停止します(異なるファイル記述子で新しいファイルが作成されます)。
ローテーションされるファイルを追跡する場合は、--follow=name
または-F
と等しい--follow=name --retry
パラメーターを使用します。こうすることで、tail
は定期的にファイルを開き、起こりうるローテーションを克服します。
cczeが適切なツールだと思います。
色付けの同じことを行います。ログが下にスクロールするのを見ることができますが、行は色付きで印刷されるため(赤のエラーなど)、読みやすくなります。次のような方法で簡単に試すことができます:
tail -f /var/log/syslog | ccze