2011-05-26 2 views
53

ログファイルに書き込むアプリケーションを作成していますが、Linux/Bashでログファイルを画面に連続して表示する方法を知っておく必要がありますログに記録する)。Bashスクリプトのログファイルが連続して画面に表示される

例として、実行中のログapache/error.logを画面(ssh端末)にプッシュして、継続的に更新したいとします。これは、あなたが最初にラインをゼロに与え、かつ継続的にファイルに表示されるすべての新しい行を出力します

tail -f filename 
+0

http://unix.stackexchange.com/questions/45626/output-file-contents-while-they-change –

答えて

80

は、tailコマンドを試してみてください。

+1

私はばかだと思います。私はtailコマンドを常に使用しています(-fパラメータではなく)。男の尾が私の友人だったでしょう。ありがとう、ちょうど私が探していたもの! (9分) –

+0

これはスクリプト作成よりも優れています:)(私も同様のスクリプトに追加できます) –

+2

オプション--follow = name'を使用するとcronジョブによってファイルが回転/再作成されていてもログファイルの内容を表示したままにしておいてください。 –

5

ssh {remotehost} tail -n0f {logfile}

+0

ありがとうございました! –

21

別の解決策は、

less +F filename 

又は単にless filenameそれに "F" を入力し(シフト F + を押す)です。それはあなたが、一時的な連続印刷を中止することができますので、tailより良くなることができる何かを見て、「F」(シフト + F)再びあなたがすることもでき

+0

私はメモを取っています、それは素晴らしい選択肢です! –

+0

さらに、 '-S'フラグであなたのために長い行**を切り捨てることができます。また、左/右にスクロールすることができます。 'tail -f file.log |に優れています。カット... 'メソッド。 – sevko

+0

私はキーコンボを理解していません。最初に 'F'を押してから' Shift'を押しますか?または同時に押しますか?私は試しましたが、それは違いはありませんでした。 – becko

5

でそれを再度有効にするために後方に行く:

less filename.txt 
and press 'F' 

には1つのプラスがあります。いつでもCTRL-Cを押してログにスクロールし、 'F'でもう一度見ることができます。

+0

私は質問の応答時間に非常に驚いています、私はいくつかの質問に答えることを試みたと私よりもここでリフレッシュボタンで高速です多くの人がいる:)回答/チップもありがとう –

8

watchコマンドを使用することもできます。

watch tail logfile 

ログファイルの最後の5行を表示しますか? stdoutに何かを出力するコマンドに拡張することができます。

はい、tail -fを使用するのは従来の解決策ですが、実行しようとしていることによってはこれがうまくいく可能性があります。

+0

Linux =同じ猫を肌に触れる100万の方法:)ありがとう –

関連する問題