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 03/08/2011, à 12:34

mangue

[Résolu] Scritp bash pour config switchs

Bonjour,
Je dois remplacer un parc de switch assez important. Du coup, au lieu de me taper toutes les confs à la main, je me suis dit, tien si je faisais un script...Bien évidement, ca ne marche pas.

Je travaille sur deux fichier, le premier rassemble les infos pour les variables, contenant un id, une ville, et un subnet par ligne :
Code : Bash - Sélectionner

870,Paris,172.16.20
871,Marseille,172.16.40

Le deuxième fichier est le script en lui-même :

Code : Bash - Sélectionner

#!/bin/bash

nom=`cut -d , -f 2 /home/mangue/Réseaux/Script_fichier_routeurs/liste.txt`
subnet=`cut -d , -f 3 /home/mangue/Réseaux/Script_fichier_routeurs/liste.txt`
id=`cut -d , -f 1 /home/mangue/Réseaux/Script_fichier_routeurs/liste.txt`

echo "spanning-tree max-age 6 
spanning-tree forward-time 8 
interface range ethernet e(1-24)
switchport mode access
exit
interface range ethernet g(1-3)
switchport mode general
exit
vlan database
vlan 3,100
exit
interface range ethernet e(1-16)
switchport access vlan 3
exit
interface range ethernet g(1-3)
switchport general allowed vlan add 3
exit
interface range ethernet e(17-24)
switchport access vlan 100
exit
interface range ethernet g(1-3)
switchport general allowed vlan add 100
exit
interface vlan 3
name DATA
exit
interface vlan 100
name VOIX
exit
voice vlan oui-table add 0001e3 Siemens_AG_phone________
voice vlan oui-table add 00036b Cisco_phone_____________
voice vlan oui-table add 00096e Avaya___________________
voice vlan oui-table add 000fe2 H3C_Aolynk______________
voice vlan oui-table add 0060b9 Philips_and_NEC_AG_phone
voice vlan oui-table add 00d01e Pingtel_phone___________
voice vlan oui-table add 00e075 Polycom/Veritel_phone___
voice vlan oui-table add 00e0bb 3Com_phone______________
interface vlan 3
ip address $subnet.5 255.255.255.128 
exit
ip default-gateway $subnet.1
interface vlan 1
no ip address dhcp 
exit
bonjour service enable csco-sb
bonjour service enable http   
bonjour service enable https  
bonjour service enable ssh    
bonjour service enable telnet 
hostname "$nom"SW$id
username cisco password e69867ca7d5a7b0ab60a2a61e7b791c106f7bf64 level 15 encrypted 
no snmp-server enable
snmp-server location ""$nom"_Mag"
snmp-server contact ""Support informatique""" > /home/mangue/Réseaux/Script_fichier_routeurs/"$id"_"$nom$"
done

Le script fonctionne bien tant que je n'ai qu'une seule ligne dans le fichier source, mais dès que je passe à plus de deux lignes , plus rien ne fonctionne.

J'ai également essayé avec une boucle while, mais au lieu de faire une conf par ligne, le script essaye de mettre toutes les informations dans la même conf...

Mon script est sûrement très crade, mais j'ai fait avec les connaissnace que j'avais, et je vous demande humblement votre aide, parceque je ne comprend pas comment fixer ce problème...

Merci à vous !

Mangue

Dernière modification par mangue (Le 03/08/2011, à 15:19)


ASUS G75VW-T1042V, Toshiba Qosmio et Samsung T-230 LinuxMint 14-15 64bits
Serveur dédié Debian 6.0
Mon BlogNote : http://www.adminreseaux.net
S'il n'y a pas d'accent dans mon message, c'est que je l'ai écris du boulot, désolé.

Hors ligne

#2 Le 03/08/2011, à 13:01

redo_fr

Re : [Résolu] Scritp bash pour config switchs

Salut,
si tu n'as pas d'espaces dans tes parametres, tu peux utiliser une boucle 'for'

for ligne in `cat /home/mangue/Réseaux/Script_fichier_routeurs/liste.txt`
do
    echo "${ligne}" | awk -F, '{print $1" "$2" "$3}' | while read id nom subnet
        do
            echo $subnet "de" $nom "($id)"
        done
done

Il n'y a pas de mauvais outils, il n'y a que de mauvais ouvriers
- papy -
Personnellement, je crois que faire des procès est un signe que les affaires vont mal. Je ne dis pas que Microsoft va mal, ce n'est qu'un signe, pas un indicateur...
- Linus Torvalds -

Hors ligne

#3 Le 03/08/2011, à 13:26

redo_fr

Re : [Résolu] Scritp bash pour config switchs

@HP
Heu... Je peux savoir à qui tu t'adresses de cette manière?...


Il n'y a pas de mauvais outils, il n'y a que de mauvais ouvriers
- papy -
Personnellement, je crois que faire des procès est un signe que les affaires vont mal. Je ne dis pas que Microsoft va mal, ce n'est qu'un signe, pas un indicateur...
- Linus Torvalds -

Hors ligne

#4 Le 03/08/2011, à 14:56

mangue

Re : [Résolu] Scritp bash pour config switchs

Edit :

Ok c'est bon désolé, j'ai parlé avant de tester...
Donc j'ai ajouté mon bloc de conf, les fichiers sont bien créés, mais sans rien dedans...
J'ai fait un cat [conf
conf
conf] >> non du fichier

C'est ma redirection qui est foireuse ?

Dernière modification par mangue (Le 03/08/2011, à 15:07)


ASUS G75VW-T1042V, Toshiba Qosmio et Samsung T-230 LinuxMint 14-15 64bits
Serveur dédié Debian 6.0
Mon BlogNote : http://www.adminreseaux.net
S'il n'y a pas d'accent dans mon message, c'est que je l'ai écris du boulot, désolé.

Hors ligne

#5 Le 03/08/2011, à 15:18

mangue

Re : [Résolu] Scritp bash pour config switchs

Bon eh bien en fait, merci beaucoup, ca fonctionne nickel !

Merci Redo !


ASUS G75VW-T1042V, Toshiba Qosmio et Samsung T-230 LinuxMint 14-15 64bits
Serveur dédié Debian 6.0
Mon BlogNote : http://www.adminreseaux.net
S'il n'y a pas d'accent dans mon message, c'est que je l'ai écris du boulot, désolé.

Hors ligne

#6 Le 03/08/2011, à 15:20

redo_fr

Re : [Résolu] Scritp bash pour config switchs

Tu peux aussi utiliser un "here script" à la place de ta looooonnnngggguuuuue chaîne ^_^

for ligne in `cat /home/mangue/Réseaux/Script_fichier_routeurs/liste.txt`
do
    echo "${ligne}" | awk -F, '{print $1" "$2" "$3}' | while read id nom subnet
        do
            cat << !EOF! > "${id}_${nom}"
interface vlan 3
ip address ${subnet}.5 255.255.255.128
exit
ip default-gateway ${subnet}.1
interface vlan 1
no ip address dhcp
hostname "${nom}"SW${id}
exit
!EOF!
        done
done

Il n'y a pas de mauvais outils, il n'y a que de mauvais ouvriers
- papy -
Personnellement, je crois que faire des procès est un signe que les affaires vont mal. Je ne dis pas que Microsoft va mal, ce n'est qu'un signe, pas un indicateur...
- Linus Torvalds -

Hors ligne

#7 Le 03/08/2011, à 19:07

Levi59

Re : [Résolu] Scritp bash pour config switchs

Useless use of cat! (pour une fois que je peux le sortir! ^^)

OLDIFS=$IFS
IFS=","
while read id nom subnet
    do echo $id-$nom-$subnet
done < fichier.txt
IFS=$OLDIFS

Hors ligne

#8 Le 04/08/2011, à 08:16

mangue

Re : [Résolu] Scritp bash pour config switchs

Merci à vous deux smile


ASUS G75VW-T1042V, Toshiba Qosmio et Samsung T-230 LinuxMint 14-15 64bits
Serveur dédié Debian 6.0
Mon BlogNote : http://www.adminreseaux.net
S'il n'y a pas d'accent dans mon message, c'est que je l'ai écris du boulot, désolé.

Hors ligne