web-dev-qa-db-fra.com

Affichage d'un fichier journal "en défilement"

En ligne de commande, j'ai un fichier journal que je voudrais garder en mémoire.

Ce que je veux, c’est d’avoir, en gros, un tail qui est actualisé lorsque le journal est mis à jour, ce qui fait défiler le texte vers le haut lorsque de nouvelles lignes sont ajoutées au fichier journal.

Y a-t-il quelque chose qui fait ça sans avoir à écrire du code?

28
WernerCD

tail a l'option -f:

De la page man:

-f, --follow [= {name | descriptor}] affiche les données ajoutées à mesure que le fichier s'agrandit; -f, --follow, et --follow = descriptor sont équivalents

Donc si vous tapez:

tail -f [path_and_name_of_logfile] - vous verrez la sortie dans le terminal à laquelle le fichier journal lui-même est ajouté.

N.B. [path_and_name_of_logfile] est le paramètre, donc pour donner un exemple:

tail -f /var/log/messages

Si vous combinez avec l'option -n [number_of_lines], vous pouvez démarrer la sortie à partir du dernier [number_of_lines] du fichier - par exemple

tail -n 10 -f /var/log/Xorg.0.log

enter image description here


Certains programmes modifient périodiquement leur fichier journal, en déplaçant l’ancien vers un nouveau nom (par exemple, log.0) et en recommençant.

N.B. logrotate fait cela pour enregistrer les fichiers d’autres programmes qui ne le font pas eux-mêmes.

tail -f continuera à suivre l'ancien fichier après son changement de nom.

tail -F suivra le fichier par son nom, donc basculera pour suivre le nouveau fichier.

35
fossfreedom

Bien que tailsoit certainement le moyen habituel de le faire, il convient de noter que lessa la même fonctionnalité et est parfois plus utile.

Si vous avez ouvert un fichier avec lessname__, vous pouvez appuyer sur Shift + F l'avoir après le fichier (c'est-à-dire qu'il affichera de nouvelles lignes, comme le fait tail -f). Vous pouvez quitter ce mode avec Ctrl + C

Vous pouvez également démarrer lessavec l'option +F. Dans ce cas, démarrer dans ce mode. De manière générale, + peut être utilisé pour donner des "commandes au clavier" à lessqu'il exécutera au démarrage.

Utiliser lessà cette fin présente l’avantage de pouvoir effectuer facilement une recherche dans le fichier ou d’afficher d’autres zones le cas échéant. Je l'ai souvent fait avec des fichiers journaux, par exemple.

18
Joachim Sauer

Est-ce que

tail -f something.log

fais ce que tu veux?

6
Florian Diesch

tail a deux implémentations à suivre et génère des données qui sont ajoutées à un fichier

  • suivre le descripteur de fichier
  • suivre un fichier avec un certain nom

Avec le paramètre -f, --follow et --follow=descriptor, tail suit le descripteur de fichier. Cette méthode permet de suivre le fichier lors du changement de nom, mais le suivi s’arrête lorsque le fichier est pivoté (un nouveau fichier est créé avec un descripteur de fichier différent).

Lorsque vous suivez des fichiers pivotés, utilisez le paramètre --follow=name ou -F, qui correspond à --follow=name --retry. De cette façon, tail réouvrira périodiquement le fichier pour éviter la rotation éventuelle.

4
Jawa

Je pense que ccze est le bon outil pour vous.

Il fait la même chose que coloriser. Vous pouvez regarder le journal défiler vers le bas, mais sa lecture est plus facile, car les lignes sont imprimées avec des couleurs (erreurs en rouge, etc.). Vous pouvez rapidement l'essayer avec quelque chose comme ça:

tail -f /var/log/syslog | ccze
1
Gelma