Commande Linux tail : Affichage de la fin des fichiers

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce tutoriel, nous allons explorer la commande tail sous Linux, un outil puissant conçu pour afficher les dernières lignes d'un fichier texte. Nous nous concentrerons sur un scénario pratique de surveillance des fichiers journaux du système, une tâche courante pour les administrateurs système. À la fin de ce tutoriel, vous comprendrez comment utiliser tail pour afficher le contenu des fichiers, personnaliser la sortie et surveiller les modifications en temps réel. Cette expérience pratique vous procurera des compétences précieuses pour la résolution de problèmes et la surveillance du système.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/BasicFileOperationsGroup -.-> linux/head("File Beginning Display") linux/BasicFileOperationsGroup -.-> linux/tail("File End Display") linux/BasicFileOperationsGroup -.-> linux/less("File Paging") subgraph Lab Skills linux/cat -.-> lab-214303{{"Commande Linux tail : Affichage de la fin des fichiers"}} linux/head -.-> lab-214303{{"Commande Linux tail : Affichage de la fin des fichiers"}} linux/tail -.-> lab-214303{{"Commande Linux tail : Affichage de la fin des fichiers"}} linux/less -.-> lab-214303{{"Commande Linux tail : Affichage de la fin des fichiers"}} end

Comprendre les bases de la commande tail

La commande tail est un outil incontournable pour afficher la fin d'un fichier. Elle est particulièrement utile pour vérifier les entrées récentes dans les fichiers journaux ou pour jeter rapidement un coup d'œil aux dernières modifications d'un document.

Commençons par examiner un exemple de fichier journal. Nous utiliserons un fichier appelé system.log dans le répertoire /home/labex/project.

Entrée :

tail /home/labex/project/system.log

Tapez cette commande dans votre terminal et appuyez sur Entrée. Ne vous inquiétez pas si vous n'êtes pas familier avec le terminal - c'est simplement une interface basée sur le texte où vous pouvez taper des commandes.

Cette commande affichera les dernières 10 lignes du fichier system.log. La sortie pourrait ressembler à ceci :

2024-03-15 09:23:45 [INFO] User 'john_doe' logged in successfully
2024-03-15 09:24:12 [WARNING] Disk usage on /dev/sda1 reached 80%
2024-03-15 09:25:03 [ERROR] Failed to connect to database server
2024-03-15 09:25:30 [INFO] Backup process started
2024-03-15 09:26:17 [INFO] Network interface eth0 went down
2024-03-15 09:26:45 [INFO] Network interface eth0 is up
2024-03-15 09:27:22 [WARNING] High CPU usage detected: 92%
2024-03-15 09:28:01 [INFO] Scheduled system update initiated
2024-03-15 09:28:39 [ERROR] Unable to reach email server
2024-03-15 09:29:10 [INFO] Firewall rules updated successfully

Analysons ce que vous voyez :

  • Chaque ligne représente une entrée de journal.
  • La première partie de chaque ligne est une horodatage (date et heure).
  • Le texte entre crochets (comme [INFO], [WARNING] ou [ERROR]) indique le niveau de gravité de l'entrée de journal.
  • Le reste de la ligne est le message de journal réel.

Par défaut, tail affiche les dernières 10 lignes du fichier. Ce comportement est particulièrement utile pour vérifier rapidement les entrées de journal récentes ou les modifications du fichier sans avoir à ouvrir et faire défiler tout le fichier.

Personnaliser le nombre de lignes

Parfois, vous pourriez avoir besoin d'afficher plus ou moins de lignes que les 10 par défaut. L'option -n (abréviation de "number", soit "nombre" en français) vous permet de spécifier exactement combien de lignes vous souhaitez voir.

Affichons les dernières 5 lignes de notre fichier journal :

Entrée :

tail -n 5 /home/labex/project/system.log

Tapez cette commande dans votre terminal et appuyez sur Entrée. La partie -n 5 indique à tail d'afficher seulement les dernières 5 lignes au lieu des 10 par défaut.

Cette commande produira une sortie similaire à ceci :

2024-03-15 09:27:22 [WARNING] High CPU usage detected: 92%
2024-03-15 09:28:01 [INFO] Scheduled system update initiated
2024-03-15 09:28:39 [ERROR] Unable to reach email server
2024-03-15 09:29:10 [INFO] Firewall rules updated successfully
2024-03-15 09:29:45 [INFO] User 'jane_smith' logged out

Comme vous pouvez le voir, nous avons maintenant une vue plus ciblée des entrées de journal les plus récentes. Cela peut être particulièrement utile lorsque vous recherchez les événements les plus récents sans être submergé par trop d'informations.

Vous pouvez remplacer le 5 par n'importe quel nombre que vous souhaitez. Par exemple, tail -n 20 afficherait les dernières 20 lignes, tandis que tail -n 1 n'afficherait que la toute dernière ligne du fichier.

Afficher le contenu à partir d'une ligne spécifique

Alors que tail est généralement utilisée pour afficher la fin d'un fichier, vous pouvez également l'utiliser pour afficher le contenu à partir d'un numéro de ligne spécifique. Pour ce faire, utilisez un signe plus (+) avant le numéro de ligne.

Affichons le contenu de notre fichier journal à partir de la 50ème ligne :

Entrée :

tail -n +50 /home/labex/project/system.log

Tapez cette commande dans votre terminal et appuyez sur Entrée. L'option -n +50 indique à tail de commencer à afficher le contenu à partir de la 50ème ligne.

Cette commande affichera toutes les lignes de la 50ème ligne jusqu'à la fin du fichier. La sortie peut être assez longue, selon la taille de votre fichier journal. Voici un exemple de ce que vous pourriez voir :

2024-03-15 08:45:12 [INFO] Backup process completed successfully
2024-03-15 08:46:03 [WARNING] Low memory warning: Available memory below 15%
2024-03-15 08:47:30 [INFO] System update check initiated
...
(more lines)
...
2024-03-15 09:29:10 [INFO] Firewall rules updated successfully
2024-03-15 09:29:45 [INFO] User 'jane_smith' logged out

Cette fonctionnalité est particulièrement utile lorsque vous devez afficher une grande partie d'un fichier, en commençant à un point spécifique. Elle peut vous aider à investiguer des problèmes qui ont peut-être commencé à un moment précis ou après un certain événement dans vos journaux.

Remarque : Si vous spécifiez un nombre supérieur au nombre total de lignes du fichier, tail affichera simplement tout le contenu du fichier.

Surveiller les modifications de fichiers en temps réel

L'une des fonctionnalités les plus puissantes de tail est sa capacité à surveiller les fichiers en temps réel. Cela est particulièrement utile pour observer les fichiers journaux pendant qu'ils sont en cours d'écriture. Nous utilisons l'option -f (qui signifie "follow", soit "suivre" en français) pour y parvenir.

Surveillons notre fichier journal en temps réel :

Entrée :

tail -f /home/labex/project/system.log

Tapez cette commande dans votre terminal et appuyez sur Entrée. Après avoir exécuté cette commande, vous verrez les dernières 10 lignes du fichier, suivies de toutes les nouvelles lignes qui sont ajoutées au fichier en temps réel.

Pour simuler l'ajout de nouvelles entrées de journal, ouvrez une nouvelle fenêtre de terminal et exécutez la commande suivante :

echo "$(date) [INFO] New log entry for testing" >> /home/labex/project/system.log

Vous devriez voir la nouvelle entrée apparaître dans le terminal où tail -f est en cours d'exécution. Cette surveillance en temps réel est inestimable pour les administrateurs système qui doivent suivre les événements du système au fur et à mesure qu'ils se produisent.

Pour quitter la commande tail -f, appuyez sur Ctrl+C dans le terminal où elle est en cours d'exécution. Ce raccourci clavier envoie un signal d'interruption au processus en cours, arrêtant la commande tail.

Combiner les options pour une utilisation avancée

La commande tail devient encore plus puissante lorsque vous combinez différentes options. Combinons l'option -n avec l'option -f pour surveiller en temps réel les dernières 3 lignes de notre fichier journal.

Entrée :

tail -n 3 -f /home/labex/project/system.log

Tapez cette commande dans votre terminal et appuyez sur Entrée. Cette commande affichera les dernières 3 lignes du fichier, puis continuera à afficher toutes les nouvelles lignes ajoutées au fichier. Cela peut être utile lorsque vous souhaitez vous concentrer sur les entrées les plus récentes dans un fichier journal en constante évolution.

Pour tester cela, ouvrez une autre fenêtre de terminal et ajoutez une nouvelle entrée de journal :

echo "$(date) [WARNING] Unusual network activity detected" >> /home/labex/project/system.log

Vous devriez voir cette nouvelle entrée apparaître dans le terminal où tail -n 3 -f est en cours d'exécution, ainsi que les deux entrées précédentes.

N'oubliez pas d'utiliser Ctrl+C pour quitter la commande tail une fois que vous avez terminé votre surveillance.

Conseil : L'ordre des options n'a pas d'importance dans ce cas. tail -f -n 3 fonctionnerait de la même manière.

Résumé

Dans ce tutoriel, nous avons exploré la commande polyvalente tail sous Linux, en nous concentrant sur son utilisation pour la surveillance des fichiers journaux. Nous avons appris à :

  1. Afficher les dernières lignes d'un fichier en utilisant la commande de base tail
  2. Personnaliser le nombre de lignes affichées en utilisant l'option -n
  3. Afficher le contenu à partir d'une ligne spécifique en utilisant tail -n +N
  4. Surveiller les modifications de fichiers en temps réel avec l'option -f
  5. Combiner les options pour une utilisation plus avancée

Ces compétences sont fondamentales pour l'administration système, le débogage et les tâches de surveillance. Au fur et à mesure que vous vous familiariserez avec tail, vous constaterez qu'il s'agit d'un outil indispensable dans votre boîte à outils Linux.