Envoi de commandes CISCO publipostées via SSH/Telnet
farislg
Messages postés
5
Statut
Membre
-
zipe31 Messages postés 38797 Statut Contributeur -
zipe31 Messages postés 38797 Statut Contributeur -
Bonjour jipicy,
Je voudrai d'abord vous remercier pour ce script qui est très intéressent mais malheureusement ça ne marche pas pour moi.
en fait lorsque je l'exécute après l'insertion du mot de passe il se bloque en affichant une erreur ,je vous serez reconnaissant si vous pouvez m'aider.
ceci est le message d'erreur
#################################################
[root@localhost SCRIPT_SWITCHS]# ./script
veuillez donner le mot de passe
./script: line 28: syntax error near unexpected token 'then'
./script: line 28: ' then'
[root@localhost SCRIPT_SWITCHS]#
###################################################
le code
1 #!/bin/bash
2 #sript.sh
3
4 echo "veuillez donner le mot de passe"
5 stty -echo #[1]
6 read password
7 stty echo
8
9 export ssh='./ssh.sh' #[2]
10 export telnet='./telnet.sh'
11 export erreur='./rapport_erreurs.log'
12 export temp='./tmp_routeur.log'
13 export cmdcisco='./commandes.txt'
14 export liste='./liste.txt'
15 export password
16 export routeur
17 export commande
18
19 rm -f $erreur #[3]
20 rm -f $ssh
21 rm -f $telnet
22
23 cat $liste | while read routeur;
24 do
25 if [ "$routeur" != "" ]
26 then
27 if[ ! -f $ssh ] #[4]
28 then
29 echo 'expect 2>&1 << EOF'>> $ssh
30 echo 'spawn ssh adminfh@$routeur' >> $ssh
31 echo 'expect {' >> $ssh
32 echo '"Password:" {send "$password\r"}' >> $ssh
33 echo 'timeout {exit}' >> $ssh
34 echo ' }' >> $ssh
35 echo 'expect "#"' >> $ssh
36
37 cat $cmdcisco | while read commande
38 do
.....
Merci beaucoup
Je voudrai d'abord vous remercier pour ce script qui est très intéressent mais malheureusement ça ne marche pas pour moi.
en fait lorsque je l'exécute après l'insertion du mot de passe il se bloque en affichant une erreur ,je vous serez reconnaissant si vous pouvez m'aider.
ceci est le message d'erreur
#################################################
[root@localhost SCRIPT_SWITCHS]# ./script
veuillez donner le mot de passe
./script: line 28: syntax error near unexpected token 'then'
./script: line 28: ' then'
[root@localhost SCRIPT_SWITCHS]#
###################################################
le code
1 #!/bin/bash
2 #sript.sh
3
4 echo "veuillez donner le mot de passe"
5 stty -echo #[1]
6 read password
7 stty echo
8
9 export ssh='./ssh.sh' #[2]
10 export telnet='./telnet.sh'
11 export erreur='./rapport_erreurs.log'
12 export temp='./tmp_routeur.log'
13 export cmdcisco='./commandes.txt'
14 export liste='./liste.txt'
15 export password
16 export routeur
17 export commande
18
19 rm -f $erreur #[3]
20 rm -f $ssh
21 rm -f $telnet
22
23 cat $liste | while read routeur;
24 do
25 if [ "$routeur" != "" ]
26 then
27 if[ ! -f $ssh ] #[4]
28 then
29 echo 'expect 2>&1 << EOF'>> $ssh
30 echo 'spawn ssh adminfh@$routeur' >> $ssh
31 echo 'expect {' >> $ssh
32 echo '"Password:" {send "$password\r"}' >> $ssh
33 echo 'timeout {exit}' >> $ssh
34 echo ' }' >> $ssh
35 echo 'expect "#"' >> $ssh
36
37 cat $cmdcisco | while read commande
38 do
.....
Merci beaucoup
A voir également:
- Envoi de commandes CISCO publipostées via SSH/Telnet
- Invite de commandes - Guide
- Commandes terminal mac - Guide
- Ssh download - Télécharger - Divers Web & Internet
- Votre envoi est en cours de transport vers son site de livraison - Forum Consommation & Internet
- Amazon supprimer historique des commandes - Forum Consommation & Internet
3 réponses
Salut,
27 if[ ! -f $ssh ] #[4]
Il manque un espace entre le "if" et le crochet "[" :
27 if[ ! -f $ssh ] #[4]
Il manque un espace entre le "if" et le crochet "[" :
if [ ! -f $ssh ]
en fait le script je ne l'ai pas fait,je l'ai trouvé sur commentcamarche et je l'ai executé.
est ce que ça serai possible de poster le code en entier afin que tu puisses mieux comprendre la source de l'erreur ?
Merci
est ce que ça serai possible de poster le code en entier afin que tu puisses mieux comprendre la source de l'erreur ?
Merci
en fait ,ce script est publié sur commentcamarche.net pour un besoin qui est censé marcher,j'ai tésté le script en suivant les indications publiés su le site,le truc c'est que je suis un administrateur et pas un devellopeur et ce script répond bien à mon besoin .malgré cela j'ai fait un effort pour essayer de le faire marcher mais je n'ai pas pu
https://www.commentcamarche.net/faq/9988-envoi-de-commandes-cisco-publipostees-via-ssh-telnet#q=commeEnvoi+de+commandes+CISCO+publipost%E9es+via+SSH%2FTelnet&cur=1&url=%2F
https://www.commentcamarche.net/faq/9988-envoi-de-commandes-cisco-publipostees-via-ssh-telnet#q=commeEnvoi+de+commandes+CISCO+publipost%E9es+via+SSH%2FTelnet&cur=1&url=%2F
Tiens, j'ai retouché le code et je l'ai posté ici : https://pastebin.com/Y2ih7H5T
Depuis toujours le code pose problème sur CCM, c'est la faute aux balises <code> et la police de caractères employée. D'une part les quotes inverses ne sont pas inversées et ressemblent comme deux gouttes d'eau à des quotes simples, les crochets servent à construire les liens (code html), etc.
Donc essaie avec ce nouveau code et dis-nous...
Depuis toujours le code pose problème sur CCM, c'est la faute aux balises <code> et la police de caractères employée. D'une part les quotes inverses ne sont pas inversées et ressemblent comme deux gouttes d'eau à des quotes simples, les crochets servent à construire les liens (code html), etc.
Donc essaie avec ce nouveau code et dis-nous...
maintenant j'en ai une autre ,merci de m'aider
le message d'erreur est le suivant
**************************************************
[root@localhost SCRIPT_SWITCHS]# ./script
veuillez donner le mot de passe
real 0.00
user 0.00
sys 0.00
./script: line 63: [: too many arguments
Problè de connexion a l'équipement 192.168.168.40 !
*****************************************************
le code
50 time -p $ssh > $temp 2>&1 #[6]
51
52 COD_RET=$?
53
54 auth='cat $temp | grep -c "Password: "' #[7]
55 if [ "$auth" -gt "1" ]
56 then
57 echo "Problè d'authentification sur $routeur !"
58 echo "$routeur : wrong log-in/password" >> $erreur
59 continue
60 fi
61
62 temps='grep 'real ' $temp | sed 's/real /§/' | cut -d'§' -f2 | cut -d' ' -f1 | cut -d'.' -f1'
63 if [ $temps -ge 10 -a ! "'grep 'closed' $temp'" ] #[8]
64 then
65 echo "L'equipement $routeur ne rénds pas !";
66 echo "$routeur : connection timed out" >> $erreur
67 continue
68 fi
69
70 if [ "$COD_RET" != "0" ] #[9]
71 then
72 #Erreur de connexion a l'éipement en SSH
Si la variable "$temp" est supérieure ou égale à 10 ET ???
en fait je ne suis pas un expert en développement,mais mon but c'est d'accéder a des équipement réseaux en ssh afin d'injecter des commande
Qu'est censé renvoyer la commande "grep 'closed' $temp" et surtout quelle comparaison veux-tu établir avec "-a !" ???