Est-ce que `tail -f` est plus efficace que` less + F`?

34

Cet article a souligné quelques raisons d'utiliser less +Fplus tail -f. La plupart des raisons portent sur les fonctionnalités , pas sur des raisons techniques : less +Fpossibilité de mettre en surbrillance, de rechercher, de parcourir un fichier.

Qu'en est-il des raisons techniques ?

AFAIK, lessutilise l'interrogation chaque seconde pour mettre à jour le fichier, tandis que tail, comme défini par POSIX, utilise une boucle qui dort pendant une seconde et copie tous les octets disponibles. C'est suffisant, mais POSIX a également encouragé l'implémentation à utiliser une méthode plus efficace. Au moins, GNU tail utilise inotify , donc c'est plus efficace.

less conserve également le contenu du fichier en mémoire; ainsi, avec un fichier volumineux, comme quelques gigaoctets, il peut ralentir votre ordinateur.

Alors, est - il des autres techniques raisons d'utiliser tail -fplus less +F?

cuonglm
la source

Réponses:

37

Je pense que vous avez couvert l'essentiel: less +Flit l'intégralité du fichier, alors que sur de nombreux systèmes, il tail -fne lit que la fin du fichier, et même sur les systèmes où il lit l'intégralité du fichier, au moins, il ne conserve pas l'intégralité du fichier. en mémoire. Cela rend less +Fimpossible pour les très gros fichiers. Vous pouvez cependant exécuter less -n +F, ce qui a lesspour effet de ne lire que la fin du fichier, au prix de ne pas afficher les numéros de ligne.

Sous le capot, entre less -n +Fet tail -f, la principale différence est l' tailutilisation d'un service de notification de changement de fichier sur certaines plates-formes (par exemple, inotify sous Linux), ce qui lui permet d'afficher de nouvelles données instantanément, tandis que l'affichage de nouvelles données lesspeut prendre jusqu'à 1 seconde. car il vérifie la présence de nouvelles données dans une boucle et dort entre les vérifications.

Une autre différence entre less +Fet tail -fest celle lessqui invoquera son filtre d'entrée, mais qui n'aura généralement aucun impact sur les fichiers journaux.

Une différence technique qui est en faveur less +Fest que vous pouvez le faire tronquer des lignes à la largeur de l'écran avec l' -Soption, alors que tailvous ne pouvez pas choisir d'afficher la ligne entière, peu importe sa longueur.

En termes d’interface, l’utilisation n’est pas un avantage less. tail -fest utile de remarquer quand quelque chose se passe. Vous pouvez même l'exécuter en arrière-plan. Si quelque chose se passe et que vous souhaitez examiner le fichier plus en détail, vous pouvez l'ouvrir lessdans un autre terminal.

Si vous souhaitez regarder plusieurs fichiers, le multitail est la solution. Même pour un seul fichier, multitail dispose de fonctionnalités intéressantes telles que le filtrage et la colorisation.

Gilles, arrête de faire le mal
la source
Avec un fichier très volumineux, 'less -n 99.99p + F' empêche-t-il moins de lire le fichier en entier?
jeudi
1
@cuonglm Ah, c'est vrai. Juste less -nassez, cela fait moins utiliser la stratégie de recherche de fin à puis de lecture.
Gilles, arrête de faire le mal.