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.
Essayez la commande tail:
tail -f filename
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
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.
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".
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.