GNU/Linux >> Tutoriels Linux >  >> Linux

Shellscript pour surveiller un fichier journal si le mot-clé se déclenche, puis exécuter une commande ?

J'ai également découvert que vous pouvez utiliser awk pour surveiller le modèle et effectuer certaines actions lorsque le modèle est trouvé :

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

Cela exécutera la commande lorsque le modèle sera trouvé dans le journal. La commande peut être n'importe quelle commande unix, y compris les scripts shell ou toute autre chose.


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

Une approche encore plus robuste est monit. Cet outil peut surveiller de très nombreuses choses, mais l'une d'entre elles est qu'il suit facilement un ou plusieurs journaux, correspond à une regex, puis déclenche un script. Ceci est particulièrement utile si vous avez une collection de fichiers journaux à surveiller ou plusieurs événements à déclencher.


Linux
  1. Comment enregistrer chaque commande tapée dans bash et chaque opération de fichier ?

  2. Comment suivre -f le dernier fichier journal avec un modèle donné

  3. Exécute la commande pour chaque fichier dans le répertoire courant

  4. Comment exécuter une commande à chaque fois qu'un fichier change ?

  5. Exécuter une commande spécifique dans un répertoire donné sans y accéder ?

Commande de fichier Linux

Moins de commande sous Linux

Commande de source bash

Commande Gzip sous Linux

Commande Gunzip sous Linux

HowTo:Le didacticiel de commande ultime Logrotate avec 10 exemples