J'ai un fichier journal au format .csv sous Linux, qui est mis à jour en permanence. Je souhaite afficher le fichier journal lors de sa mise à jour. Existe-t-il des commandes Linux pour le faire?
tail -f yourlog.csv
Les lignes nouvellement ajoutées s'affichent en continu.
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 vous ne pouvez pas revenir en arrière et les rechercher à moins que votre terminal ne le prenne en charge et que vous ayez suffisamment de lignes en mémoire tampon dans votre terminal.
Une solution moins connue que j'aime est d'utiliser less
; si vous tapez Shift-F lors de l'affichage d'un fichier avec less
, il commencera à suivre la fin du fichier comme tail -f
. Vous pouvez également démarrer less
avec 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, puis paginez de haut en bas, effectuez une recherche à l'aide de /et utilisez less
comme d'habitude. Cela peut être très utile si vous voyez quelque chose d'intéressant dans le journal, mais il 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 fini de chercher, appuyez sur Shift-F pour recommencer à suivre le fichier.
multitail
ressemble à une bonne solution pour suivre plusieurs fichiers dans des fenêtres séparées; si vous affichez plusieurs fichiers avec tail -f
, ils seront chacun 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 souhaitez les regarder.
tail -F
(c'est-à-dire le capital -F
, par opposition aux minuscules -f
) est un indicateur non standard (disponible sur Linux, Cygwin, MacOS X, FreeBSD et NetBSD), qui fonctionne mieux pour regarder les fichiers journaux, qui peuvent être tournés de temps en temps; 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 volumineux. tail -f
continuera de suivre l'ancien fichier, qui n'est plus le fichier journal actif, tandis 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 le --follow-name
flag pour que less
agisse également de cette façon.
(merci à ephemient pour les conseils sur less +F
et less --follow-name
)
queue -f foo.csv
Juste au cas où vous souhaitez surveiller plusieurs fichiers, il existe un outil sympa appelé multitail qui vous permet de fusionner la sortie de deux fichiers ou plus et de les suivre en temps réel. multitail vous permet également de naviguer dans les deux sens dans les fichiers surveillés.
tail -f
et tous ses amis sont de la vieille école. multitail
semble meilleur mais la vraie façon de graver le CPU en regardant vos fichiers journaux est d'utiliser glTail .
less -S '-#' 4 /var/log/logfile
-S
arrêtera l'habillage de ligne ennuyeux.
-#
4
définira l'étape de défilement horizontal sur quatre colonnes, au lieu de la valeur par défaut de la moitié de l'écran.
Appuyez sur la touche Fin pour actualiser.
vsConsole FileView peut vous aider si vous préférez surveiller vos journaux via une application Web. Voir la démo sur http://demo.vamonossoftware.com/
Vous devez exécuter un Java, y déployer vsConsole et exécuter des agents sur le serveur contenant les journaux - je suppose donc que c'est une solution plus lourde que ce dont vous avez besoin ici. ( C'est bon pour les équipes de développement/test qui veulent simplement cliquer sur un fichier journal pour le voir plutôt que ssh, cd, tail, etc.)
tail -of log file.csv.
Si vous vous êtes connecté à l'interface graphique, vous pouvez utiliser le tapis de souris pour afficher le journal de manière dynamique.