Application pour surveiller fichier log ?

BigEdison

Membre actif
2 Juillet 2004
203
5
49
entre ici et là bas
www.ybphotos.book.fr
Bonjour à tous,
Je suis à la recherche d'un logiciel tournant en tache de fond et qui surveillerait un fichier log et dès un mot clé est trouvé il effectuerait une action.
Connaissez une appli qui fasse ca ?

Merci pour votre aide
 
Bonsoir

Un simple script pourrait faire ça.

Pour les détails, il faudrait savoir plus précisément ce que tu souhaites faire, avec quelle rapidité, de quelle manière doit être démarré, arrêté et relancé le processus, etc. ...
 
Merci pour ta réponse.
En fait, il faudrait que le log soit toujours surveillé dès le démarrage du mac.
Malheureusement mes connaissance en script sont limitées et ne me permettent pas de réaliser cette opération
 
Voici un exemple de shell script :
Bloc de code:
#!/bin/bash

FILE="[COLOR="Blue"]/Users/ma_session/test.log[/COLOR]"
DELAY=[COLOR="DarkRed"]5[/COLOR]
KEYWORD="[COLOR="Magenta"]error[/COLOR]"
CMD="[COLOR="Green"]open -t /Users/ma_session/test.log[/COLOR]"

OLD=`cat $FILE | grep -c $KEYWORD`
while [ 1 ]; do
  sleep $DELAY
  NEW=`cat $FILE | grep -c $KEYWORD`
  if [[ $NEW != $OLD ]]
    then
    OLD=$NEW
    $CMD
  fi
done
Le principe de ce petit programme consiste à relire le fichier de log ("/Users/ma_session/test.log") à intervalles réguliers (toutes les 5 secondes) afin d'y compter le nombre de fois qu'apparaît le mot-clé attendu ("error"). Dès que ce mot-clé apparaît un nouvelle fois, l'augmentation du décompte provoque le lancement de la commande désirée (ouverture du fichier de log à l'aide de "open -t /Users/ma_session/test.log").

Tu peux facilement modifier les parties colorées de ce script afin de l'adapter à ce que tu souhaites faire.


Si par exemple tu enregistres ce script dans le fichier ~/surveillance (au format texte brut, et non pas RTF, attention !), il te faut tout d'abord le rendre exécutable. Pour ce faire, il faut lancer la commande :
Bloc de code:
[B]chmod 755[/B] [COLOR="Indigo"]~/surveillance[/COLOR]

Ensuite, pour exécuter le script en arrière-plan (i.e. sans fenêtre visible à l'écran), il faut taper la commande :
Bloc de code:
[COLOR="Indigo"]~/surveillance[/COLOR] [B]&[/B]
Un numéro de processus (PID) est retourné. Il peut servir à mettre fin au script par le biais d'une commande "kill". Si par exemple le PID du script est 154, alors pour l'arrêter la commande est :
Bloc de code:
[B]kill[/B] [COLOR="Teal"]154[/COLOR]
En cas d'oubli, ce PID peut être retrouvé à l'aide de la commande :
Bloc de code:
[B]ps -A | grep[/B] [COLOR="Indigo"]surveillance[/COLOR]
.
 
  • J’aime
Réactions: BigEdison et David_b