PDA

View Full Version : Besoin d'une confirmation ... merci ^^


Boby07
07-23-2008, 11:56 AM
Dans le fichier process-service-perfdata, un plugin du répertoire /libexec
pouvez vous me confirmer le script suivant ?

#!/bin/bash
# some parameters passed on command line
TIMETS=$1
HOSTNAME=$2
SERVICEDESC=$3
OUTPUT=$4
SERVICESTATE=$5
PERFDATA=$6
PERFFILE="/usr/local/nagios/var/service-perfdata"
/usr/bin/printf "%b"
"$TIMET\t$HOSTNAME\t$SERVICEDESC\t$OUTPUT\t$SERVICE STATE\t$PERFDATA\n" >>
$PERFFILE

quand je l'execute par ./process-service-perfdata

voila l'erreur:

./process-service-perfdata: line 11: syntax error near unexpected token `newline'
./process-service-perfdata: line 11: `"$TIMET\t$HOSTNAME\t$SERVICEDESC\t$OUTPUT\t$SERVICE STATE\t$PERFDATA\n" >>'


Je vous remercie,

naparuba
07-23-2008, 12:07 PM
Dans ton fichier tu as un retour chariot après le >> ?

Boby07
07-23-2008, 12:42 PM
j'ai juste fais "ENTER" pour passer à la ligne ... je dois faire un \n pour le retour chariot, s'est bien ça ?

surcouf
07-23-2008, 12:43 PM
j'ai juste fais "ENTER" pour passer à la ligne ... je dois faire un \n pour le retour chariot, s'est bien ça ?

Non, tu dois protéger le retour à la ligne par un \ pour éviter que ce soit interpréter comme une nouvelle ligne par bash mais comme la continuité de la même ligne.

Ronan_
07-23-2008, 12:44 PM
Tu peux aussi enlever le retour à la ligne, mettre $PERFFILE sur la même ligne que le >> (avec un espace entre)

Boby07
07-23-2008, 12:45 PM
alors éclair moi s'il te plait, comment écrirais tu la syntaxe exactement ?

je te remercie.

Ronan_
07-23-2008, 12:48 PM
"$TIMET\t$HOSTNAME\t$SERVICEDESC\t$OUTPUT\t$SERVIC ESTATE\t$PERFDATA\n" >> $PERFFILE

Boby07
07-23-2008, 02:08 PM
je te remercie, , mais j'ai cette fois-ci cette erreur:

./process-service-perfdata: line 11: \t\t\t\t ESTATE\t\n: command not found

... désolé, je suis novice dans les scripts ...

Flo

Guigui2607
07-23-2008, 02:19 PM
En fait c'est nagios qui lance ce script qui a besoin d'arguments.
Si tu le lances sans arguments, ça ne fonctionnera pas...

Encore une correction à la ligne redonnée par Ronan:

/usr/bin/printf "%b" "$TIMET\t$HOSTNAME\t$SERVICEDESC\t$OUTPUT\t$SERVICE STATE\t$PERFDATA\n" >> $PERFFILE
(un espace à supprimer entre t$SERVIC et ESTATE)

Boby07
07-23-2008, 02:34 PM
je te remercie, ça fonctionne, aucune erreur retournée ^^

merci pour l'aide,

Flo

Ronan_
07-23-2008, 02:36 PM
Bien vu, j'avais pas tout vérifié dans la ligne...