Question Shellscript pour surveiller un fichier journal si des déclencheurs de mots-clés exécutent une commande?


Existe-t-il un moyen peu coûteux de surveiller un fichier journal comme tail -f log.txt, alors si quelque chose comme [error] apparaît, exécuter une commande?

Je vous remercie.


32
2017-12-02 03:10


origine


Réponses:


tail -fn0 logfile | \
while read line ; do
        echo "$line" | grep "pattern"
        if [ $? = 0 ]
        then
                ... do something ...
        fi
done

46
2017-12-02 03:16



J'ai également constaté que vous pouvez utiliser awk pour surveiller le motif et effectuer certaines actions lorsque le motif est trouvé:

tail -fn0 logfile | awk '/pattern/ { print | "command" }'

Ceci exécutera la commande quand le motif est trouvé dans le journal. La commande peut être toute commande Unix, y compris les scripts shell ou toute autre chose.


12
2018-04-19 19:51



Une approche encore plus robuste est monit. Cet outil peut surveiller beaucoup de choses, mais l'une d'elles est qu'il va facilement mettre en queue un ou plusieurs journaux, faire correspondre les regex et déclencher un script. Ceci est particulièrement utile si vous avez une collection de fichiers journaux à surveiller ou plusieurs événements à déclencher.


3
2017-07-14 12:00



Batter et simple:

tail -f log.txt | egrep -m 1 "error"
echo "Found error, do sth."
...

0
2017-07-26 08:04



Solution automatisée simple qui couvre de nombreux scénarios:

USAGE: 

logrobot localhost [default-dir],fixer,[exit-codes],[command/script-to-run-per-exit-code] [feature] [logfile] [age] [str-1] [str-2] [WARN] [CRIT] [tag] [option]

EXEMPLE:

logrobot  localhost  /tmp/logXray,fixer,0y-1y-2y,0-uname,1-who,2-uptime  autonda  /var/log/kern.log  60m  'error'  '.'  1  2  app_err_monitor  -ndshow

Avec cet outil, vous pouvez surveiller des modèles spécifiques dans un fichier journal, puis déclencher une commande ou un script lorsque les modèles sont trouvés ... ou NON trouvés!

Les scripts ou les commandes peuvent être définis pour s'exécuter en fonction des seuils et des codes de sortie.

L'outil peut être téléchargé directement ici.


-1
2018-05-02 04:34