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
Commentaires
simon (non vérifié)
jeu, 31/01/2019 - 11:52
Permalien
merci !
merci !
Ajouter un commentaire