logger : Journaliser des évènements dans /var/log/syslog

La commande logger permet d'enregistrer des informations dans le fichier /var/log/syslog.

Cette commande est idéale pour journaliser différents évènements pendant l'exécution d'un script.

Elle peut être utilisée tout simplement :

$ logger -t monTag monMessage
$ tail /var/log/syslog
Apr 23 15:23:37 ubuntu10.04 monTag: monMessage

L'option -t permet d'indiquer un tag. Très utile pour effectuer des recherches dans le fichier syslog.

$ logger -t monTag Je peux également écrire un texte avec des espaces
$ tail /var/log/syslog
Apr 23 15:26:12 ubuntu10.04 monTag: Je peux également écrire un texte avec des espaces

La commande logger permet également d'enregistrer dans syslog le contenu d'un fichier.

$ cat fic1
systèmes
coucou
recoucou
$ logger -t FIC1 -f fic1
$ tail /var/log/syslog
Apr 23 15:29:13 ubuntu10.04 FIC1: systèmes
Apr 23 15:29:13 ubuntu10.04 FIC1: coucou
Apr 23 15:29:13 ubuntu10.04 FIC1: recoucou

Utiliser la commande logger dans un script :

$ cat comparaison.sh
#!/bin/bash
logger -t $0 Execution du script
# Test sur le nombre d'arguments
if [[ $# -ne 2 ]]
then
        logger -t $0 Nombre d\'arguments incorrect
        echo "Mauvais nombre d'arguments"
        echo "Utilisation : $0 nbr1 nbr2"
        exit 1
fi
# On compare les nombres
logger -t $0 Comparaison de $1 et $2
if [[ $1 -gt $2 ]]
then
        logger -t $0 $1 est superieur a $2
        echo "Comparaison : $1 est superieur a $2"
else
        logger -t $0 $1 est inferieur a $2
        echo "Comparaison : $1 est inferieur a $2"
fi
logger -t $0 Fin du script
exit 0

Dans ce script, j'utilise le nom du script comme tag (logger -t $0).

Exécution du script :

$ ./comparaison.sh 10 20
Comparaison : 10 est inferieur a 20
$ tail /var/log/syslog
Apr 23 15:51:57 ubuntu10.04 ./comparaison.sh: Execution du script
Apr 23 15:51:57 ubuntu10.04 ./comparaison.sh: Comparaison de 10 et 20
Apr 23 15:51:57 ubuntu10.04 ./comparaison.sh: 10 est inferieur a 20
Apr 23 15:51:57 ubuntu10.04 ./comparaison.sh: Fin du script

Tous mes évènements ont été enregistrés dans sylog.

Il est également possible, dans le script, d'enregistrer les évènements dans un fichier texte avec la commande echo et seulement, à la fin du script, d'utiliser la commande logger pour enregistrer le contenu du fichier texte dans le fichier syslog.

$ cat comparaison.sh
#!/bin/bash
echo "Execution du script" > /root/logComparaison
# Test sur le nombre d'arguments
if [[ $# -ne 2 ]]
then
        echo "Nombre d'arguments incorrect" >> /root/logComparaison
        echo "Mauvais nombre d'arguments"
        echo "Utilisation : $0 nbr1 nbr2"
        exit 1
fi
# On compare les nombres
echo "Comparaison de $1 et $2" >> /root/logComparaison
if [[ $1 -gt $2 ]]
then
        echo "$1 est superieur a $2" >> /root/logComparaison
        echo "Comparaison : $1 est superieur a $2"
else
        echo "$1 est inferieur a $2" >> /root/logComparaison
        echo "Comparaison : $1 est inferieur a $2"
fi
echo "Fin du script" >> /root/logComparaison
logger -t $0 -f /root/logComparaison
exit 0

Tous les évènements sont enregistrés dans le fichier /root/logComparaison à l'aide de la commande echo.
Attention, le premier appel à la commande echo écrase le contenu du fichier /root/logComparaison s'il existe (utilisation d'un seul chevron ">" dans la redirection).
Pour terminer, tout le contenu du fichier est enregistré dans syslog à l'aide de la commande logger et de l'option -f suivi du nom du fichier (utilisation du nom du script en tag).

$ ./comparaison.sh 100 20
Comparaison : 100 est superieur a 20
$ cat logComparaison
Execution du script
Comparaison de 100 et 20
100 est superieur a 20
Fin du script
$ tail /var/log/syslog
Apr 23 16:21:10 ubuntu10.04 ./comparaison.sh: Execution du script
Apr 23 16:21:10 ubuntu10.04 ./comparaison.sh: Comparaison de 100 et 20
Apr 23 16:21:10 ubuntu10.04 ./comparaison.sh: 100 est superieur a 20
Apr 23 16:21:10 ubuntu10.04 ./comparaison.sh: Fin du script

Etiquettes: 

Commentaires

merci !

Ajouter un commentaire

Filtered HTML

  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Tags HTML autorisés : <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Les lignes et les paragraphes vont à la ligne automatiquement.

Plain text

  • Aucune balise HTML autorisée.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
CAPTCHA
Cette question permet de s'assurer que vous êtes un utilisateur humain et non un logiciel automatisé de pollupostage.
CAPTCHA visuel
Entrez les caractères (sans espace) affichés dans l'image.