Flux rss
Rechercher : dans
Par :

Succesion de variable dans un script

nabil1706, le mardi 21 novembre 2006 à 10:29:20 
 Signaler ce message aux modérateurs

Bonjour,
J'essaie d'optimisier un script en evitant d'ecrire dans des fichiers successifs. Pour cela je voudrais uniquement utiliser des variables, mais je n'y arrive pas.
Voila une partie du script :
/usr/local/rep1/telnet_lns.sh $1 $2 $3 > /home/monrep/$1_01.txt ;
echo $2 > titi
A=`cat titi | cut -c 5-8`
grep $A /home/monrep/$1_01.txt | tr -s "[:blank:]" "*" | cut -f 6 -d "*" >/home/monrep/fic_tot; awk '
{ s += $1 } END { print s }' /home/monrep/fic_tot

en gros je recupere des données sur une machine et le recupere les nombre que je veux en faisant des grep successifs avec les bons parametres pour en faire le total

Merci pour vos reponses

1

jipicy, le mardi 21 novembre 2006 à 10:46:30

Salut,

Peut être qu'avec un aperçu du script "telnet_lns.sh", des valeurs des paramètres "$1 $2 $3" on pourrait davantage te préter main forte, non ?

Enfin si tu veux bien...

;-) Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

2

nabil1706, le mardi 21 novembre 2006 à 10:54:28

Bonjour,
Le voila....le script permet de se connecter à uen machine distante pour recuperer des infos pour faire des stats

#!/usr/bin/expect
set timeout 120
set lns [lindex $argv 0]
set ctx1 [lindex $argv 1]
set ctx2 [lindex $argv 2]
set ctx3 [lindex $argv 3]
set ctx4 [lindex $argv 4]
set ctx5 [lindex $argv 5]
set ctx6 [lindex $argv 6]

spawn telnet $lns
expect "login: "
send "monlogin\r"
expect "Password:"
send "monpassword\r"
expect "#"
send "terminal length 0\r"
expect "#"
send "context $ctx1\r"
expect "#"
send "show l2tp info\r"
expect "#"

Répondre à nabil1706

3

jipicy, le mardi 21 novembre 2006 à 11:03:40

Ok merci.

Par contre il nous faudrait aussi les paramètres et un aperçu de ton fichier "$1_01.txt" pour essayer de t'aider à optimiser le tout.
Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

4

nabil1706, le mardi 21 novembre 2006 à 11:13:35

Re bonjour
voila un apperçu
spawn telnet cbv-lns-1
Trying XXX.XXX.XXX.XXX...
Connected to cbv-lns-1 (XXX.XXX.XXX.XXX).
Escape character is '^]'.

CBV-LNS-1

This router is the property of XXXXX.
All actions are monitored.
Unauthorized access is prohibited.
Violators will be prosecuted.


For operational problems contact:

XXX Network Operations Centre
e-mail: XXX@XXX.XXX
phone : XX.XX.XX.XX

login: monlogin
Password:
Signon successful.
[local]CBV-LNS-1#terminal length 0
[local]CBV-LNS-1#context lns-LD1
[lns-LD1]CBV-LNS-1#show l2tp info
Conf. Tun Ses
Peer Name Local Name Role Source Count Count
-------------------- -------------------- ---- ------ ----- -----
L2TP_PW/XX.XX.XX.XX CBV-LNS-1-LD1 LNS Local 1 3 Unnamed
L2TP_PW/XX.XX.XX.XX1 CBV-LNS-1-LD1 LNS Local 1 2 Unnamed
L2TP_PW/XX.XX.XX.XX2 CBV-LNS-1-LD1 LNS Local 1 1 Unnamed
L2TP_PW/XX.XX.XX.XX3 CBV-LNS-1-LD1 LNS Local 1 1 Unnamed
L2TP_PW/XX.XX.XX.XX4 CBV-LNS-1-LD1 LNS Local 1 4 Unnamed
L2TP_PW/XX.XX.XX.XX5 CBV-LNS-1-LD1 LNS Local 1 5 Unnamed
L2TP_PW/XX.XX.XX.XX6 CBV-LNS-1-LD1 LNS Local 1 2 Unnamed
L2TP_PW/XX.XX.XX.XX7 CBV-LNS-1-LD2 LNS Local 1 1 Unnamed


je recupere le chiffre juste avant Unnamed et j'en fais la somme, ici pour LD1, ensuite pour LD2....
Pour info,Il y a des decalages de temps en temps sur les colonnes

Répondre à nabil1706

5

jipicy, le mardi 21 novembre 2006 à 11:32:26

Encore un petit truc... à quoi correspond "$2" (je suppose que ça a un rapport avec "LD1") ?
Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

6

nabil1706, le mardi 21 novembre 2006 à 11:38:26

Oui exactement...
Je telnet une machine avec des variables $2 (qui est "xxx-LD1"), $3 qui est xxx-LD2).
donc dans mon script, il faut que je recupere LD1 (donc sans xxx-)pour que mon grep puisse recupere les bonnes lignes
C'est pour ça que que je recupere $2 dans un fichier pour le cutter afin de n'avoir que les 3 dernier caracteres..ici LD1

merci

Répondre à nabil1706

7

jipicy, le mardi 21 novembre 2006 à 11:57:11

Voilà ce que ça pourrait donner :

# Là on change rien
/usr/local/rep1/telnet_lns.sh $1 $2 $3 > /home/monrep/$1_01.txt
# Plutôt que de passer par un fichier, autant passer par une variable
# Changer "$2" par "$3" si nécessaire
A=$(expr "$2" : ".*\(...\)")
# Puis on enchaîne
grep -E "($A |unnamed$)" /home/monrep/$1_01.txt | awk '{ s += $6 } END { print s }'
;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

8

nabil1706, le mardi 21 novembre 2006 à 13:01:35

Merci, je teste et je te tiens au courant

@+

Répondre à nabil1706

9

nabil1706, le mardi 21 novembre 2006 à 14:11:39

Hello
Je te remercie pour ton aide
ça marche tres bien

@+

Répondre à nabil1706

10

 jipicy, le mardi 21 novembre 2006 à 14:21:01

De rien ;-))

Tu peux simplifier tout compte fait la dernière ligne comme suit :

grep "$A " /home/monrep/$1_01.txt | awk '{ s += $6 } END { print s }'
Qui devrait faire l'affaire aussi ;-)
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy
[Sun Solaris 9] Problème variable script ksh (Résolu) Bonjour, Je suis en train de faire un script et j'ai un problème. Voici le script "test.sh" en exemple : #!/bin/ksh export TITI="premier" export TOTO="deuxieme" Je fais ensuite chmod +x test.sh Puis ./test.sh Malheureusement l'export des variables ne... www.commentcamarche.net/forum/affich-2907276-sun-solaris-9-probleme-variable-script-ksh
Script -> initialisation de variables d'envir Bonjour, J'aimerai faire un script dans lequel seront initialisés un certain nombre de variable et de fonctions qui deviendrons des variables d'environnement lorsque que mon script sera appelé par d'autres script. Comment dois-je initialiser mes... www.commentcamarche.net/forum/affich-1239067-script-initialisation-de-variables-d-envir
Transfert de variable script SQL->shell Bonjour, je cherche à transférer des variables (texte en l'occurence) d'un script SQL vers le shell (unix) qui l'appelle. La solution qui consiste à utiliser le exit du SQL pour renvoyer la valeur ne fonctionne pas dans mon cas étant donné le type et... www.commentcamarche.net/forum/affich-1094693-transfert-de-variable-script-sql-shell
Exécuter un script shellExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha-Bang Premièrement,... www.commentcamarche.net/faq/sujet-4627-executer-un-script-shell
[Shell] Tester une variable numériqueTester une variable numérique    Préambule Dans un environnement "shell", les variables sont, par défaut, de type "chaîne de caractères". De ce fait il n'est pas possible de déclarer une variable de type "entier" (enfin, ceci n'est pas tout à... www.commentcamarche.net/faq/sujet-4605-shell-tester-une-variable-numerique
Comment récupérer le résultat d'une commande dans une variableComment récupérer le résultat d'une commande dans une variable Préambule Syntaxe Exemples Préambule Il est bien souvent nécessaire de récupérer le résultat d'une commande (ou de son code retour) dans une variable afin de pouvoir... www.commentcamarche.net/faq/sujet-5030-comment-recuperer-le-resultat-d-une-commande-dans-une-variable
Incrémenter une variable script shellBonjour, ma question concerne la programmation en script shell. En fait je voudrais savoir comment incrémenter une variable parcourant les fichiers d'un répertoire, ie si ma variable j désigne un fichier, je souhaiterais que ma variable k désigne le... www.commentcamarche.net/forum/affich-12692836-incrementer-une-variable-script-shell
SHELL-remplacer un ligne dans un fichier-AWK (Résolu)Bonjour, J'essaye de remplacer une chaine de caracteres qui est stockée dans une variable et ensuite d'effectuer une recherche puis un remplacement dans un fichier. voici un petit bout du script: mot_a_rechercher="toto" fic=/usr/users/toto/fichier... www.commentcamarche.net/forum/affich-2846642-shell-remplacer-un-ligne-dans-un-fichier-awk
/sed/ & VARIABLE script challengeBonjour, Je me suis concocté un petit script qui fonctionne honnêtement (en Bourne shell du moins) mais qui est plutôt tiré par les cheveux et qui par conséquent, mérite sont lot de petites retouches. Voici la chose: #!/bin/sh A=/archive.ubuntu.com... www.commentcamarche.net/forum/affich-12794008-sed-variable-script-challenge
Télécharger SQL Script BuilderSQL Script Builder est un programme qui permet de concevoir un script SQL au format MySql, MS SQL, Oracle, Pervasive ou PostgreSQL à partir d’une base de données. Ce script va déplacer toute ou partie des tables de la base de données concernée vers la... www.commentcamarche.net/telecharger/telecharger-34059733-sql-script-builder
Télécharger Admin Script EditorAdmin Script Editor est un programme d’édition de script spécialement conçu pour les administrateurs de Windows et compatible avec KiXtart, VBscript, Autolt et Batch. Le mode de fonctionnement est très simple et la création de fichiers exécutables en... www.commentcamarche.net/telecharger/telecharger-34059671-admin-script-editor
PHP - Les variables d'environnementNotion de variable d'environnement Les variables d'environnement sont, comme leur nom l'indique, des données stockées dans des variables permettant au programme d'avoir des informations sur son environnement. L'environnement, dans le cas du script... www.commentcamarche.net/contents/php/phpenv.php3
VBScript - Les variablesLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Il s'agit en fait d'une zone de la mémoire réservée pour le stockage d'une valeur. Les... www.commentcamarche.net/contents/vbscript/vbsvar.php3
Les variables avec PerlConcept de variable avec Perl Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage Perl peuvent être de trois... www.commentcamarche.net/contents/perl/perlvar.php3