Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 wink )

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

Alucard95 a écrit :

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 wink )

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.


HP a écrit :

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

tiky a écrit :

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… roll


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