|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Nouveau Membre du Club
![]() Inscription : juillet 2005 Messages : 44 ![]() |
Bonjour,
je suis en train de modifier un script constructeur afin de pouvoir générer des alarmes vers mon outil de supervision. Globalement je m'en suis bien sorti, mais une partie du code me pose problème a cause d'un awk. Mon problème concerne la fonction CheckSlices. J'ai besoin selon la boucle qui est utilisée d'envoyer une commande (OPCMON), j'ai essayé plusieurs syntaxes. ajout directement après le print: Code :
Code :
Si je reste dans la boucle du awk, il me crache des erreurs de syntaxe car le awk semble évaluer la commande OPCMON Si je sors du awk, la variable $monitor reste vide. Si quelqu'un a la moindre idée d'une syntaxe qui pourrait me permettre de m'en sortir... d'avance merci, surtout que je ne suis pas certain que mon problème soit bien explicité. Code complet (fonction Chekslice original constructeur): Code :
|
||||||
|
|
10
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 070 ![]() |
Bonjour,
Tout d'abord cette fonction est pourrie ! On ne fait pas grep | sed | awk : et sed et awk peuvent par eux-même faire un grep, et awk peut faire les transformations exécutées par sed. if n'est pas une boucle ! Ensuite, les variables shell sont ne sont pas reconnues par awk, il faut les lui passer avec l'option -v; les variables de awk ne sont pas reconnues par le shell. Pour faire exécuter des commandes externes par awk, il faut utiliser la fonction system(). Enfin, vue la manière dont est utilisée la fonction CheckSlices, tu ne devrais pas chercher à lui faire exécuter une commande. |
|
|
10
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2005 Messages : 44 ![]() |
Hello,
bon j'ai pu m'en sortir partiellement en utilisant la fonction system(), merci du tuyau par contre je me pose une question, les variables utilisées par awk (ex: "NOK - slice", $1) peuvent elles être réutilisées dans ma cmd OPCMON ?? Pour le moment elles ne semblent pas évaluée, l'appel de la fonction system doit donc sortir du contenaire du awk je suppose. PS: dsl si mon vocable est encore perfectible |
|
|
10
|
|
|
#4 | ||
|
Nouveau Membre du Club
![]() Inscription : juillet 2005 Messages : 44 ![]() |
Je complète ma question.
ma commande OPCMON étant un peu particulière, je me demande si ce que je veux est possible: Code :
Une idée ?? D'avance merci |
||
|
|
10
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2005 Messages : 44 ![]() |
Edit:
bon en réalité cette syntaxe fonctionne, en tout cas elle fontionne pour 2 de mes 3 conditions, j'en conclus que mon script doit avoir un comportement anormal pour le premier if. Je vais étudier cela. Merci de votre aide. |
|
|
10
|
|
|
#6 | ||
|
Nouveau Membre du Club
![]() Inscription : juillet 2005 Messages : 44 ![]() |
Re,
N_BAH, j'ai un nouveau script, a nouveau avec un awk, j'ai besoin de récupérer une variable contenu dans mon script, mais la variable est toujours vide, pourtant mon tableau de résultat final indique bien une valeur pour la variable $ecart. Je ne vois vraiment pas pourquoi awk ne parvient pas à recup la valeur. Voici mon script: Code :
D'avance merci pour votre aide |
||
|
|
10
|
|
|
#7 | ||
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 070 ![]() |
Bonjour,
Code :
et pas de $ pour les noms de variables en awk. |
||
|
|
20
|
|
|
#8 | ||
|
Nouveau Membre du Club
![]() Inscription : juillet 2005 Messages : 44 ![]() |
Yep,
merci de ta rapidité Malheureusement cela ne fonctionne toujours pas, la variable ecart n'est toujours pas évaluée, ci joint l'output du set -x Code :
Il m'enquiquine ces awk |
||
|
|
10
|
|
|
#9 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 070 ![]() |
Code :
++ echo 'Dev/B: Configuration inconnue' |
|
|
10
|
|
|
#10 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2005 Messages : 44 ![]() |
Oui je suis dans un env de dev mais le script va chercher ailleurs les infos dont il a besoin:
Code :
[ -f $c/exalead_env ] && . $c/exalead_env || . $c/exabis_env Donc je devrais être en mesure de récupérer son contenu, non ? |
|
|
10
|
|
|
#11 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 070 ![]() |
ce que je vois, c'est que le script teste Dev/A, ne le trouve pas, et reprend la boucle for avec Dev/B, qui se finit (la boucle for) en "passant des arguments" qui n'existent pas à awk
pour être sûr, comment exécutes-tu le script ? |
|
|
10
|
|
|
#12 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2005 Messages : 44 ![]() |
Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhhhhhh
t'as raison, je suis une sous quiche Ce sont des scripts constructeurs a la base que je devais juste enrichir, mais sans rien connaitre de la plateforme... ce n'est pas une excuse cependant ! Bon du coup j'ai repris un bout d'un autre script et désormais cela fonctionne. Vraiment désolé, je n'arrive pas toujours a prendre assez de recul pour voir l'évidence Encore merci a toi. |
|
|
10
|
|
|
#13 |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 534 ![]() |
meuh non, le reconnaitre c'est déjà passer du statut de sous quiche à celui de simple quiche.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com