#1 Le 29/09/2008, à 12:29
- Alucard95
besoin d'aide pour mon script shell
Bonjour tout le monde!!
J'aurai besoin d'aide pour l'ecriture d'un script. Je cherche à faire un script qui va récupérer le résultat d'une commande (snmpget) pour la stocker dans une variable, puis mettre à jour un fichier rrd avec cette variable. Voila le script:
#!/bin/sh
input = `snmpget -Oqv -v2c -c public adresse_ip 1.3.6.1.2.1.2.2.1.10.4`
output = `snmpget -Oqv -v2c -c public adresse_ip 1.3.6.1.2.1.2.2.1.16.4`
# I can use N as a replacement for the current time
rrdtool update /home/zabbix/switch.rrd 1222639200:$input:$output
# sleep until the next 300 seconds are full
le problème est que le résultat de l'éxécution de ce script est :
test_script.sh: 2: input: not found
test_script.sh: 4: output: not found
Je ne sais pas d'ou vient l'erreur, si quelqu'un pouvait éclairer ma lanterne (et mon script par la même occasion )
merci d'avance
Hors ligne
#2 Le 29/09/2008, à 12:34
- HP
Re : besoin d'aide pour mon script shell
déjà ne plus utiliser `cmd`mais $(cmd) :
http://www.bash-hackers.org/wiki/doku.php/syntax/expansion/cmdsubst
cat /dev/urandom >/dev/null 2>&1 #github
Hors ligne
#3 Le 29/09/2008, à 12:36
- tiky
Re : besoin d'aide pour mon script shell
Bonjour tout le monde!!
J'aurai besoin d'aide pour l'ecriture d'un script. Je cherche à faire un script qui va récupérer le résultat d'une commande (snmpget) pour la stocker dans une variable, puis mettre à jour un fichier rrd avec cette variable. Voila le script:
#!/bin/sh
input = `snmpget -Oqv -v2c -c public adresse_ip 1.3.6.1.2.1.2.2.1.10.4`output = `snmpget -Oqv -v2c -c public adresse_ip 1.3.6.1.2.1.2.2.1.16.4`
# I can use N as a replacement for the current time
rrdtool update /home/zabbix/switch.rrd 1222639200:$input:$output
# sleep until the next 300 seconds are fullle problème est que le résultat de l'éxécution de ce script est :
test_script.sh: 2: input: not found
test_script.sh: 4: output: not foundJe ne sais pas d'ou vient l'erreur, si quelqu'un pouvait éclairer ma lanterne (et mon script par la même occasion
)
merci d'avance
Il ne faut pas mettre d'espace lorsque tu assignes une valeur à une variable shell.
input=`ta commande`
et pas
input = `ta commande`
Conseil d'expert: il vous faut un dentifrice adapté...
Hors ligne
#4 Le 29/09/2008, à 12:45
- Alucard95
Re : besoin d'aide pour mon script shell
Tout d'abord merci pour votre rapidité!!
J'ai bien enlevé mes espaces et cela a enlevé mes citées ci-dessus, mais par contre mon script ne rempli pas son rôle, c'est à dire qu'il ne remplit pas le fichier rrd.
déjà ne plus utiliser `cmd`mais $(cmd) :
http://www.bash-hackers.org/wiki/doku.php/syntax/expansion/cmdsubst
Je ne suis pas sûr d'avoir compris, je dois utiliser cette syntaxe??
#!/bin/sh
input=$(snmpget -Oqv -v2c -c public adresse_ip 1.3.6.1.2.1.2.2.1.10.4)
output=$(snmpget -Oqv -v2c -c public adresse_ip 1.3.6.1.2.1.2.2.1.16.4)
# I can use N as a replacement for the current time
rrdtool update /home/zabbix/switch.rrd 1222639200:$input:$output
# sleep until the next 300 seconds are full
Hors ligne
#5 Le 29/09/2008, à 13:52
- HP
Re : besoin d'aide pour mon script shell
Il ne faut pas mettre d'espace lorsque tu assignes une valeur à une variable shell.
Oh ! bé oui… lire la doc aussi… alors…
http://fr.wikipedia.org/wiki/Bourne-Again_shell
ça pourra toujours servir… au point où on en est…
cat /dev/urandom >/dev/null 2>&1 #github
Hors ligne
#6 Le 29/09/2008, à 14:04
- Alucard95
Re : besoin d'aide pour mon script shell
Merci pour vos réponses, c'est vrai, ce fichu espace est une mauvaise habitude du vbscript.
En tout cas merci à vous deux!!
Hors ligne