Créer une liste dans un script shell

Fermé
ctn - 23 nov. 2009 à 00:27
mamiemando Messages postés 33130 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 mai 2024 - 23 nov. 2009 à 02:50
Bonjour,
Je dois créer un script shell, et dans celui ci je dois créer une liste.
En faite j'ai plusieur adresse mac et ip et pour éviter de les taper à chaque fois j'aimerais créer une liste pour les adresses mac et une ou plusieur pour les adresse ip !!
voici le début de mon script :

#!/bin/sh
Echo "Entrez l'adresse mac "
read mac
echo 10.110.32.1
rsh 10.110.32.1 -l user "show mac-address-table | include $mac"
echo 10.110.33.1
rsh 10.110.33.1 -l user "show mac-address-table | include $mac"

le résultat est :
10.110.32.1
nom_vlan @mac nom_port

j'aimerais aussi récupéré le résultat dans une variable pour pouvoir la réétuliser dans mon script mais je ne sais pas le faire..
Si qq pouvais m'aider svp c'est assez urgent !!
merci

*¤CTN¤*

1 réponse

mamiemando Messages postés 33130 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 mai 2024 7 755
23 nov. 2009 à 02:50
rsh versus ssh

Je n'ai pas vraiment compris ce que tu cherchais à faire. De plus j'utiliserais plutôt ssh que rsh, qui outre le fait qu'il est entièrement sécurisé contrairement à rsh, permet de déporter aisément des commandes sur des machines distantes et d'utiliser des clés ssh pour éviter de s'authentifier.
http://doc.ubuntu-fr.org/ssh
http://prendreuncafe.com/blog/post/2005/08/29/262-installer-sa-cle-ssh-sur-un-serveur-distant

Cela présuppose que le paquet openssh-server est installé sur les machines sur lesquelles tu te connectes.

read versus fichier

De manière générale, je te déconseille de faire des "read" qui te forceront à taper à chaque fois ces informations. Il est beaucoup plus pratique (et donc efficace) de mettre toutes les saisies dans un fichier texte que tu traiteras avec des commandes shell (grep, cut, etc...)
https://fr.wikipedia.org/wiki/Grep
http://pwet.fr/man/linux/commandes/cut/

En admettant que sur les machines sur lesquelles tu dois te connecter soient répertoriées dans un fichier texte (éventuellement un fichier tabulé si pour chaque machine tu as une ligne avec une IP et une adresse MAC), on peut trait bien imaginer qu'à l'aide d'un pipe tu appliques à chacune une commande déportée en ssh. Si ça ne te parle pas, je t'invite à lire un tutoriel en shell ou en bash.
https://fr.wikipedia.org/wiki/Tube_Unix

Maintenant, comme je n'ai pas vraiment compris quel était le but final, je ne peux pas être très prcise.

Bonne chance
0