web-dev-qa-db-fra.com

Affichage du fichier journal du script Bash à l'écran en continu

Je crée une application qui écrit dans un fichier journal, et j'ai besoin de savoir comment sous Linux/Bash afficher en continu le fichier journal à l'écran (mettre à jour l'écran à chaque nouvelle ligne insérée dans le journal).

Donc, à titre d'exemple, disons que je veux pousser un journal en cours d'exécution de Apache/error.log à l'écran (terminal ssh) continuellement mis à jour.

70
Aaron Murray

Essayez la commande tail:

tail -f filename
99
Hai Vu

Une autre solution est

 less +F filename

ou juste less filename et en tapant "F" (en appuyant sur shift+f). Elle peut être meilleure que tail, car elle vous permet d'annuler l'impression continue temporaire, de revenir en arrière pour regarder quelque chose et de la réactiver avec "F" (shift+f) encore

25
osgx

La commande watch peut également être utile.

watch tail logfile

Vous montrerait les 5 dernières lignes du fichier journal. Il peut être étendu à n'importe quelle commande qui imprime des éléments sur stdout.

Oui, en utilisant tail -f est la solution traditionnelle, mais selon ce que vous essayez de faire, cela pourrait mieux fonctionner.

10
Seth Robertson

Vous pouvez aussi:

less filename.txt
and press 'F'

a un plus - vous pouvez à tout moment CTRL-C et faire défiler en arrière dans le journal et recommencer à regarder avec le "F".

6
jm666

ssh {remotehost} tail -n0f {logfile}

Cela vous donnera initialement zéro ligne et imprimera en continu toutes les nouvelles lignes qui apparaissent dans le fichier.

5
bukzor