Ich erstelle eine Anwendung, die in eine Protokolldatei schreibt, und ich muss wissen, wie in Linux / Bash die Protokolldatei kontinuierlich auf dem Bildschirm angezeigt wird (Aktualisierung des Bildschirms mit jeder neuen Zeile im Protokoll).
Nehmen wir als Beispiel an, ich möchte ein laufendes Protokoll von apache/error.log
auf den Bildschirm (SSH-Terminal) übertragen, das ständig aktualisiert wird.
Antworten:
Versuchen Sie den Befehl tail:
quelle
--follow=name
Sie sicherstellen, dass der Inhalt der Protokolldatei auch dann angezeigt wird, wenn die Datei von einem Cron-Job gedreht / neu erstellt wurde.Eine andere Lösung ist
oder geben Sie einfach
less filename
"F" ein (drücken Sie shift+ f). Es kann besser sein alstail
, weil es Ihnen ermöglicht, den kontinuierlichen Druck vorübergehend abzubrechen, rückwärts zu gehen, um etwas anzusehen und es wieder mit "F" ( shift+ f) zu aktivierenquelle
-S
und gleichzeitig nach links / rechts scrollen. Dertail -f file.log | cut ...
Methode überlegen .F
dannShift
? Oder gleichzeitig drücken? Ich habe es versucht, aber es machte keinen Unterschied.Der Befehl watch kann ebenfalls von Nutzen sein.
Würde Ihnen die letzten 5 Zeilen der Protokolldatei zeigen. Es kann auf jeden Befehl erweitert werden, der Inhalte auf stdout druckt.
Ja, die Verwendung
tail -f
ist die traditionelle Lösung, aber je nachdem, was Sie versuchen, funktioniert dies möglicherweise besser.quelle
ssh {remotehost} tail -n0f {logfile}
Dadurch erhalten Sie zunächst keine Zeilen und drucken kontinuierlich alle neuen Zeilen, die in der Datei angezeigt werden.
quelle
Du kannst auch:
less filename.txt and press 'F'
hat ein Plus - Sie können jederzeit STRG-C drücken und im Protokoll zurückblättern und erneut mit dem 'F' beginnen.
quelle