78 votes

Afficher dynamiquement un fichier journal sous Linux

J'ai un fichier journal au format .csv sous Linux, qui est mis à jour en permanence. Je souhaite afficher le fichier journal au fur et à mesure de sa mise à jour. Existe-t-il une ou plusieurs commandes Linux permettant de le faire ?

126voto

teerapap Points 1367

tail -f yourlog.csv

Les lignes nouvellement ajoutées s'affichent en permanence.

76voto

Brian Campbell Points 101107

Comme d'autres l'ont souligné, tail -f _file_ est la solution la plus courante. Le problème est que les résultats défilent et qu'il n'est pas possible de revenir en arrière pour les rechercher, à moins que votre terminal ne le supporte et que vous ayez suffisamment de lignes en mémoire tampon dans votre terminal.

Une solution moins connue que j'aime bien est d'utiliser less ; si vous tapez Shift - F lors de la visualisation d'un fichier avec less il commencera à suivre la fin du fichier, comme dans le cas suivant tail -f . Vous pouvez également commencer less con less +F pour entrer dans ce mode au démarrage. A tout moment, vous pouvez taper Ctrl - C pour arrêter de suivre le fichier, et ensuite paginer vers le haut et vers le bas, rechercher en utilisant / et utiliser less tout comme la normale. Cela peut s'avérer très utile si vous voyez quelque chose d'intéressant dans le journal, mais que cela défile hors de l'écran, ou si vous voulez revenir un peu en arrière pour vérifier quelque chose que vous avez peut-être manqué. Une fois que vous avez terminé votre recherche, appuyez sur Shift - F pour recommencer à suivre le fichier.

multitail semble être une bonne solution pour suivre plusieurs fichiers dans des fenêtres distinctes ; si vous affichez plusieurs fichiers avec l'option tail -f ils seront tous entrelacés les uns avec les autres (avec des en-têtes pour les distinguer), ce qui n'est peut-être pas la façon dont vous voulez les regarder.

tail -F (c'est-à-dire le capital -F par opposition aux minuscules -f ) est un drapeau non standard (disponible sur Linux, Cygwin, MacOS X, FreeBSD et NetBSD), qui fonctionne mieux pour la surveillance des fichiers journaux, qui peuvent faire l'objet d'une rotation occasionnelle ; il est courant qu'un processus renomme un fichier journal, puis crée un nouveau fichier journal à sa place, afin d'éviter qu'un fichier journal ne devienne trop gros. tail -f continuera à suivre l'ancien fichier, qui n'est plus le fichier journal actif, alors que tail -F surveillera la création d'un nouveau fichier, et commencera à le suivre à la place. Si vous utilisez less pour suivre le fichier, vous pouvez utiliser la fonction --follow-name pour faire less agissent également de cette manière.

(merci à ephemient pour les conseils sur less +F y less --follow-name )

11voto

Pete Points 6387

Tail -f foo.csv

11voto

gareth_bowles Points 10605

Au cas où vous voudriez surveiller plusieurs fichiers, il existe un outil sympa appelé multitail qui vous permet de fusionner les sorties de deux ou plusieurs fichiers et de les suivre en temps réel. multitail vous permet également de naviguer en avant et en arrière dans le ou les fichiers suivis.

9voto

Noufal Ibrahim Points 32200

tail -f et tous ses amis sont de la vieille école. multitail semble meilleur mais le réel La façon de brûler le CPU en regardant vos fichiers journaux est d'utiliser glTail .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X