Pages : 1
#1 Le 23/07/2015, à 15:49
- Sylvainremi
Script Scanneur de Logs
Bonjour à tous et à toutes.
Voila je cherche à "scanner" en permanence plusieurs logs , j'ai rédigé un script à cette effet mais ...
Il ne marche pas, en effet le tail -f s’exécute seulement sur le premier logs et comme la commande tail ne s’arrête jamais il ne passe pas au suivant.
quelqu'un aurais une solution/piste pour effectuer plusieurs tails (sans passer par multitail)
Merci d'avance à tous ceux qui sont passés par là.
Rémi
#!/bin/bash
string="error"
for i in `ls /var/log/ | grep -E "^vhost..?$"`
do
tail -n 0 -F /var/log/$i/logs/* | \
while read LINE
do
echo "$LINE" | grep -q $string
if [ $? = 0 ]
then
date3=`date +%Y-%m-%d-%H:%M:%S`
echo -e "$date3 $string found" >> errorlog.txt
mail -s "erreur" ilyaunbobo@apache.com < errorlog.txt
fi
done
done
Hors ligne
#2 Le 24/07/2015, à 09:17
- credenhill
Re : Script Scanneur de Logs
hello
rediriger des tail-f de chaque log en parallèle dans un fichier et surveiller ce fichier
$ tail -f log1 >> /tmp/x& tail -f log2 >> /tmp/x& tail -f log3 >> /tmp/xx&
$ tail -f /tmp/x
Hors ligne
#3 Le 24/07/2015, à 09:46
- bruno
Re : Script Scanneur de Logs
hum… Ce n'est pas idiot, mais ce fichier ne va-t-il pas grossir indéfiniment et finir par saturer le disque ? (option -f)
Tail n'est pas fait pour cela. Si l'objectif est de surveiller les logs, il y a des outils existants : logwatch, logcheck (pour un envoi par courriel) et de nombreux autres outils d'analyse et de surveillance plus ou moins élaborés.
Dernière modification par bruno (Le 24/07/2015, à 09:46)