Comment utiliser la commande tail sous Linux

Contenu

Une fenêtre de terminal affichant une invite Bash sur un ordinateur portable Linux de style Ubuntu.

Sous Linux tail La commande affiche les données de la fin d'un fichier. Il peut même afficher les mises à jour ajoutées à un fichier en temps réel. Nous vous montrons comment l'utiliser.

Systemd Kill Tail?

Les tail La commande affiche les données de la fin d'un fichier. En général, de nouvelles données sont ajoutées à la fin d'un fichier, Pour ce que tail La commande est un moyen rapide et facile de voir les ajouts les plus récents à un fichier. Vous pouvez également surveiller un fichier et afficher chaque nouvelle entrée de texte dans ce fichier au fur et à mesure qu'elle se produit.. Cela en fait un excellent outil pour surveiller les fichiers journaux..

De nombreuses distributions Linux modernes ont adopté le systemd Responsable Systèmes et Services. C'est la première procédure exécutée, ont Identifiant du processus 1et est le parent de tous les autres processus. Ce rôle était autrefois géré par des anciens init système.

Parallèlement à ce changement, est venu un nouveau format pour les fichiers journaux du système. N'est plus créé en texte brut, au systemd sont enregistrés au format binaire. Pour lire ces fichiers journaux, doit utiliser Les journactl utilitaire. Les tail La commande fonctionne avec les formats de texte brut. Ne lit pas les fichiers binaires. Ensuite, Ceci signifie que tail La commande est-elle une solution à la recherche d'un obstacle? Avez-vous encore quelque chose à offrir?

Il y a plus tail commande pour afficher les mises à jour en temps réel. Et en réalité, il existe encore de nombreux fichiers journaux qui ne sont pas générés par le système et qui sont toujours créés en tant que fichiers en texte brut. Par exemple, fichiers journaux générés par Applications ils n'ont pas changé de format.

Utiliser de la colle

Passer le nom d'un fichier à tail et il vous montrera les dix dernières lignes de ce fichier. Les exemples de fichiers que nous utilisons contiennent des listes de mots ordonnées. Chaque ligne est numérotée, il devrait donc être facile de suivre les exemples et de voir quel effet les différentes options ont.

liste de mots de queue.txt

Pour afficher un nombre différent de lignes, utiliser el -n (nombre de lignes) option:

queue -n 15 liste-mot.txt

En réalité, vous pouvez vous passer du "-n" et utiliser un tiret "-" et le nombre. Assurez-vous qu'il n'y a pas d'espace entre eux. Techniquement, ceci est un formulaire de commande obsolète, mais c'est toujours dans le page de manuelet ça marche toujours.

queue -12 liste-mot.txt

Utilisation de tail avec de nombreux fichiers

Vous pouvez avoir tail travailler avec plusieurs fichiers en même temps. Il suffit de passer les noms de fichiers dans la ligne de commande:

queue -n 4 liste-1.txt liste-2.txt liste-3.txt

Un petit en-tête est affiché pour chaque fichier afin que vous sachiez à quel fichier appartiennent les lignes.

Affichage des lignes depuis le début d'un fichier

Les + (compter depuis le début) le modificateur fait tail afficher les lignes depuis le début d'un fichier, à partir d'un numéro de ligne spécifique. Si votre fichier est très long et que vous choisissez une ligne vers le début du fichier, vous obtiendrez beaucoup de résultats envoyés à la fenêtre du terminal. Si c'est le cas, il est logique de canaliser la sortie de tail Dans less.

queue +440 liste-1.txt

Vous pouvez feuilleter le texte de manière contrôlée.

Parce qu'il y a 20,445 lignes dans ce fichier, cette commande est similaire à l’utilisation de l' “-6”:

queue +20440 liste-1.txt

Utilisation d'octets de fin

Tu peux dire tail d'utiliser des décalages en octets au lieu de lignes en utilisant le -c (octets) option. Cela peut être utile si vous avez un fichier texte formaté en enregistrements de taille normale. Notez qu'un caractère de nouvelle ligne compte pour un octet. Cette commande affichera la dernière 93 octets de fichier:

queue -c 93 liste-2.txt

Vous pouvez combiner le -c (octets) option avec le + (compter depuis le début du fichier) et spécifiez un décalage en octets comptés depuis le début du fichier:

queue -c +351053 liste-e.txt

Pipe dans la queue

Précédemment, nous canalisons la sortie de tail Dans less . Nous pouvons également canaliser la sortie d'autres commandes vers tail.

Pour identifier les cinq fichiers ou dossiers avec les temps de modification les plus anciens, Utilisez le -t (trier par heure de modification) option avec ls et rediriger la sortie vers tail.

ls -tl | queue -5

Les head commander liste les lignes de texte depuis le début d'un fichier. Nous pouvons combiner cela avec tail pour extraire une section du fichier. Ici, nous utilisons le head commande pour extraire le premier 200 lignes d'un fichier. Ceci est canalisé vers tail, qui extrait les dix dernières lignes. Cela nous donne les lignes 191 jusqu'à la ligne 200. Autrement dit, les dix dernières lignes du premier 200 lignes:

tête -n 200 liste-1.txt | queue -10

Cette commande répertorie les cinq processus les plus gourmands en mémoire.

ps aux | trier -nk +4 | queue -5

Analysons ça.

Les ps commander affiche des informations sur les processus en cours d'exécution. Les alternatives utilisées sont:

  • une: Lister tous les processus, pas seulement pour l'utilisateur actuel.
  • ton: Affiche une sortie orientée utilisateur.
  • X: Lister tous les processus, y compris ceux qui ne fonctionnent pas dans un ATS.

Les sort commander ordonner la sortie de ps . Les alternatives que nous utilisons avec sort est-ce ainsi:

  • Nord: Trier numériquement.
  • k +4: Ordre dans la quatrième colonne.

Les tail -5 La commande affiche les cinq derniers processus de la sortie commandée. Ce sont les cinq processus qui consomment le plus de mémoire.

Utilisation de tail pour suivre les fichiers en temps réel

Suivre les nouvelles entrées de texte arrivant dans un fichier, généralement un fichier journal, c'est facile avec tail. Passez le nom du fichier dans la ligne de commande et utilisez le -f (Continuez) option.

queue -f geek-1.log

Comme chaque nouvelle entrée de journal est ajoutée au fichier journal, tail met à jour son affichage dans la fenêtre du terminal.

Vous pouvez affiner la sortie pour inclure uniquement les lignes d'une pertinence ou d'un intérêt particulier. Ici, nous utilisons grep pour afficher uniquement les lignes qui incluent le mot “moyenne”:

queue -f geek-1.log | moyenne grep

Pour suivre les modifications dans deux ou plusieurs fichiers, passer les noms de fichiers en ligne de commande:

queue -f -n 5 geek-1.log geek-2.log

Chaque entrée est étiquetée avec un en-tête qui indique de quel fichier le texte provient.

Sortie de la queue -f -n 5 geek-1.log geek-2.log

L'écran est mis à jour chaque fois qu'une nouvelle entrée arrive dans un fichier suivi. Pour spécifier la période de mise à jour, Utilisez le -s (période de repos). Cela dit tail attendre quelques secondes, cinq dans cet exemple, entre les vérifications de fichiers.

queue -f -s 5 geek-1.log

Il est vrai que vous ne pouvez pas le dire en regardant une capture d'écran, mais les mises à jour déposer se produisent une fois toutes les deux secondes. De nouvelles entrées de fichier sont affiché dans la fenêtre du terminal une fois toutes les cinq secondes.

Sortie de la queue -f -s 5 geek-1.log

Lorsque vous effectuez le suivi des ajouts de texte dans plusieurs fichiers, vous pouvez supprimer les en-têtes qui indiquent de quel fichier journal provient le texte. Utilisez le -q option (silencieux) pour faire ceci:

queue -f -q geek-1.log geek-2.log

La sortie des fichiers est affichée dans une combinaison parfaite de texte. Il n'y a aucune indication de quel fichier journal provient chaque entrée.

la queue a encore de la valeur

Même si l'accès aux fichiers journaux du système fournit désormais journalctl, tail a encore beaucoup à offrir. Ceci est particulièrement vrai lorsqu'il est utilisé en conjonction avec d'autres commandes, entrer ou sortir tail.

systemd aurait pu changer le paysage, mais il y a toujours une place pour les utilitaires traditionnels qui se conforment à la philosophie Unix de faire une chose et de la faire correctement.

setTimeout(fonction(){
!fonction(F,b,e,v,m,t,s)
{si(f.fbq)revenir;n=f.fbq=fonction(){n.callMethod?
n.callMethod.apply(m,arguments):n.queue.push(arguments)};
si(!f._fbq)f._fbq=n;n.push=n;n.chargé=!0;n.version=’2.0′;
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertAvant(t,s) } (window, document,'scénario',
'https://connect.facebook.net/en_US/fbevents.js’);
fbq('init', « 335401813750447 »);
fbq('Piste', « Page View »);
},3000);

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.