GNU/Linux >> Tutoriels Linux >  >> Linux

10 exemples impressionnants pour afficher d'énormes fichiers journaux sous Unix

Afficher d'énormes fichiers journaux pour le dépannage est une tâche de routine banale pour les administrateurs système et les programmeurs.

Dans cet article, voyons comment afficher et manipuler efficacement d'énormes fichiers journaux à l'aide de 10 exemples impressionnants.

Exemple 1 :Afficher des lignes spécifiques (basées sur le numéro de ligne) d'un fichier à l'aide de la commande sed

Afficher uniquement les lignes spécifiques mentionnées par des numéros de ligne.

Syntax: $ sed -n -e Xp -e Yp FILENAME
  • sed :commande sed, qui imprimera toutes les lignes par défaut.
  • -n :supprime la sortie.
  • -e CMD :Commande à exécuter
  • Xp :imprimer le numéro de ligne X
  • Yp :imprimer le numéro de ligne Y
  • FILENAME :nom du fichier à traiter.

L'exemple mentionné ci-dessous imprimera les lignes 120, 145, 1050 du syslog.

$ sed -n -e 120p -e 145p -e 1050p /var/log/syslog

Dans l'exemple suivant, vous pouvez afficher le contenu de var/log/cron des lignes 101 à 110.

  • M - Numéro de ligne de départ
  • N - Numéro de ligne de fin
Syntax: sed -n M,Np FILENAME

$ sed -n 101,110p /var/log/cron

Exemple 2 :Afficher les N premières lignes d'un fichier à l'aide de la commande head

Cet exemple affiche uniquement les 15 premières lignes du fichier /var/log/maillog. Remplacez 15 par 10 pour afficher les 10 premières lignes d'un fichier journal.

Syntax: head -n N FILENAME

$ head -n 15 /var/log/maillog

Exemple 3 :Ignorer les N dernières lignes d'un fichier à l'aide de la commande head

Cet exemple montre comment ignorer les N dernières lignes et afficher uniquement les lignes restantes à partir du haut du fichier.

L'exemple suivant affichera toutes les lignes de /var/log/secure sauf les 250 dernières lignes.

Syntax: head -n -N FILENAME

$ head -n -250 /var/log/secure

Exemple 4 :Afficher les N dernières lignes du fichier à l'aide de la commande tail

Cet exemple affiche uniquement les 50 dernières lignes du fichier /var/log/messages. Remplacez 50 par 100 pour afficher les 100 dernières lignes du fichier journal.

Syntax: tail -n N FILENAME

$ tail -n 50 /var/log/messages

Exemple 5 :Ignorer les N-1 premières lignes du fichier à l'aide de la commande tail

Cet exemple montre comment ignorer les N-1 premières lignes et afficher uniquement le reste des lignes.

L'exemple suivant ignore les quatre premières lignes du fichier /etc/xinetd.conf, qui ne contient que les commentaires.

Syntax: tail -n +N FILENAME

$ tail -n +5 /etc/xinetd.conf
defaults
{
        instances               = 60
        log_type                = SYSLOG authpriv
        log_on_success          = HOST PID
        log_on_failure          = HOST
        cps                     = 25 30
}
includedir /etc/xinetd.d

Exemple 6 :Afficher le fichier journal croissant en temps réel à l'aide de la commande tail

C'est probablement l'une des commandes les plus utilisées par les administrateurs système. Pour afficher un fichier journal en pleine croissance et ne voir que le contenu le plus récent, utilisez tail -f comme indiqué ci-dessous.

L'exemple suivant montre le contenu de la commande /var/log/syslog en temps réel.

Syntax: tail -f FILENAME

$ tail -f /var/log/syslog

Exemple 7 :Afficher des lignes spécifiques (basées sur le numéro de ligne) d'un fichier à l'aide de la commande head and tail

L'exemple ci-dessous affichera les numéros de ligne 101 à 110 du fichier /var/log/anaconda.log

  • M - Numéro de ligne de départ
  • N - Numéro de ligne de fin
Syntax: cat file | tail -n +N | head -n (M-N+1)

$ cat /var/log/anaconda.log | tail -n +101 | head -n 10
  • cat :imprime tout le fichier sur la sortie standard.
  • tail -n +101 :ignore les lignes jusqu'au numéro de ligne donné, puis commence à imprimer les lignes après le numéro donné.
  • head -n 10 :imprime les 10 premières lignes, c'est-à-dire 101 à 110 et ignore les lignes restantes.

Exemple 8 :Affichez les lignes correspondant à un modèle, et quelques lignes après la correspondance.

L'exemple suivant affiche la ligne qui correspond à "Initializing CPU" de /var/log/dmesg et 5 lignes immédiatement après cette correspondance.

# grep "Initializing CPU#1" /var/log/dmesg
Initializing CPU#1
[Note: The above shows only the line matching the pattern]

# grep -A 5 "Initializing CPU#1" dmesg
Initializing CPU#1
Calibrating delay using timer specific routine.. 3989.96 BogoMIPS (lpj=1994982)
CPU: After generic identify, caps: bfebfbff 20100000 00000000 00000000
CPU: After vendor identify, caps:  bfebfbff 20100000 00000000 00000000
monitor/mwait feature present.
CPU: L1 I cache: 32K, L1 D cache: 32K
[Note: The above shows the line and 5 lines after the pattern matching]

Reportez-vous à notre article précédent Get a Grip on the Grep! – 15 exemples pratiques de commande Grep qui expliquent comment utiliser la commande grep.

Comme expliqué dans notre précédent article sur la commande grep, les opérations suivantes sont possibles.

  • Affichage de lignes spécifiques identifiées par des modèles, qui est la fonctionnalité par défaut de grep.
  • Affichage uniquement des caractères correspondants.
  • Affichage de N lignes après le match avec l'option -A.
  • Affichage de N lignes avant le match avec l'option -B.
  • Affichage de N lignes autour du match avec l'option -C.

Exemple 9 :Affichage d'octets spécifiques d'un fichier.

L'exemple suivant explique comment afficher les 40 premiers ou les 30 derniers octets d'un fichier.

Afficher les 40 premiers octets de syslog.

$ head -c40 /var/log/syslog

Afficher les 30 derniers octets de syslog.

$ tail -c30 /var/log/syslog

Exemple 10 :Affichage des fichiers journaux compressés

Après un certain temps, tous les fichiers journaux du système sont pivotés et compressés. Vous pouvez le décompresser à la volée et diriger la sortie vers une autre commande unix pour afficher le fichier comme expliqué ci-dessous.

Reportez-vous à notre article précédent La puissance des commandes Z - Exemples Zcat, Zless, Zgrep, Zdiff

  • Afficher les N premières lignes d'un fichier compressé.
    $ zcat file.gz | head -250
  • Afficher les N dernières lignes d'un fichier compressé.
    $ zcat file.gz | tail -250
  • Ignorer les N dernières lignes d'un fichier compressé.
    $ zcat file.gz | head -n -250
  • Ignorer les N premières lignes d'un fichier compressé.
    $ zcat file.gz | tail -n +250
  • Affichage des lignes correspondant au motif
    $ zcat file.gz | grep -A2 'error'
  • Affichage d'une plage particulière de lignes identifiées par numéro de ligne.
    $ zcat file.gz | sed -n -e 45p -e 52p

Si vous devez revenir, mettez cette page en signet sur del.icio.us pour une référence pratique.


Linux
  1. Emplacements des fichiers journaux communs et des fichiers de configuration pour les services cPanel

  2. Fichiers journaux Linux

  3. UNIX ar Exemples :Comment créer, afficher, extraire, modifier des fichiers d'archive C (*.a)

  4. 10 exemples Sar (Sysstat) utiles pour la surveillance des performances UNIX / Linux

  5. Comment copier des fichiers sous Linux et Unix ? 10 exemples de commandes cp

Commande ls sous Linux/UNIX

15 exemples impressionnants pour manipuler des fichiers audio à l'aide de Sound eXchange (SoX)

Papa, je l'ai trouvé !, 15 exemples de commandes de recherche Linux impressionnants (Part2)

Tutoriel Unix Sed :6 exemples d'opération de branchement Sed

Tutoriel Unix Sed :7 exemples d'opérations Sed Hold et Pattern Buffer

UNIX / Linux :7 exemples pratiques de commandes PS pour la surveillance des processus