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]
.