Afficher un fichier journal "défilant"

27

En ligne de commande, j'ai un fichier journal que je souhaite suivre.

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

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

    
posée WernerCD 13.09.2011 - 22:49
la source

5 réponses

34

tail a l'option -f :

Depuis la page man :

  

-f, --follow [= {name | descriptor}]                 sortir les données ajoutées au fur et à mesure que le fichier grandit; -f, --suivre,   et --follow = descriptor sont équivalents

Donc, si vous tapez:

tail -f [path_and_name_of_logfile] - vous verrez la sortie dans le terminal comme 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 lancer la sortie du dernier [number_of_lines] du fichier - par exemple

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

Certains programmes modifieront 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 le fait pour enregistrer des fichiers pour d'autres programmes qui ne le font pas eux-mêmes.

tail -f continuera à suivre l'ancien fichier après son renommage.

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

    
réponse donnée fossfreedom 13.09.2011 - 23:00
la source
17

Bien que tail soit certainement la manière habituelle de faire cela, il convient de noter que less a la même fonctionnalité et est parfois plus utile.

Si vous avez ouvert un fichier avec less , vous pouvez appuyer sur Shift + F pour qu’il suive le fichier (par exemple, il affichera de nouvelles lignes, tout comme tail -f fait). Vous pouvez quitter ce mode avec Ctrl + C

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

Utiliser less pour cela a l'avantage que vous pouvez facilement rechercher le fichier ou voir d'autres zones en cas de besoin. Je l'ai souvent fait avec des fichiers journaux, par exemple.

    
réponse donnée Joachim Sauer 14.09.2011 - 07:51
la source
6

Est-ce que

tail -f something.log

fais ce que tu veux?

    
réponse donnée Florian Diesch 13.09.2011 - 23:00
la source
4

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

  • suivez 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 dans un renommage, 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 , ce qui équivaut à --follow=name --retry . De cette façon, tail rouvrira périodiquement le fichier pour surmonter la rotation possible.

    
réponse donnée Jawa 14.09.2011 - 01:56
la source
1

Je pense que ccze est l'outil qu'il vous faut.

Il fait la même chose que la colorisation. Vous pouvez regarder le journal défiler vers le bas, mais il est plus facile à lire, car les lignes sont imprimées avec des couleurs (erreurs en rouge, etc.). Vous pouvez l’essayer rapidement avec quelque chose comme ceci:

tail -f /var/log/syslog | ccze
    
réponse donnée Gelma 28.09.2011 - 17:59
la source

Lire d'autres questions sur les étiquettes