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?
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
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.
Bien que tail
soit certainement le moyen habituel de le faire, il convient de noter que less
a la même fonctionnalité et est parfois plus utile.
Si vous avez ouvert un fichier avec less
name__, 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 less
avec 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" à less
qu'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.
Est-ce que
tail -f something.log
fais ce que tu veux?
tail
a deux implémentations à suivre et génère des données qui sont ajoutées à un fichier
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.
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