Advertisement
Guest User

Script Cisco

a guest
Dec 13th, 2012
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 7.74 KB | None | 0 0
  1. #!/bin/bash  
  2. #script.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 admin@$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  
  39.                                 echo "send \"$commande\r\""  
  40.                                 echo 'expect "#"'  
  41.                         done >> $ssh  
  42.  
  43.                         echo 'send "exit\r"' >> $ssh  
  44.                         echo 'expect "closed"' >> $ssh  
  45.                         echo 'exit' >> $ssh  
  46.                         echo 'EOF' >> $ssh  
  47.  
  48.                         chmod +x $ssh                                            #[5]  
  49.                 fi  
  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ème 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éponds 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'équipement en SSH  
  73.                         if [ ! -f $telnet ]  
  74.                         then  
  75.                                 echo 'expect 2>&1 << EOF'>> $telnet  
  76.                                 echo 'spawn telnet $routeur' >> $telnet  
  77.                                 echo 'send "admin\r"' >> $telnet  
  78.                                 echo 'expect "Password:"' >> $telnet  
  79.                                 echo 'send "$password\r"' >> $telnet  
  80.                                 echo 'expect "#"' >> $telnet  
  81.  
  82.                                 cat $cmdcisco | while read commande  
  83.                                 do  
  84.                                         echo "send \"$commande\r\""  
  85.                                         echo 'expect "#"'  
  86.                                 done >> $telnet  
  87.  
  88.                                 echo 'send "exit\r"' >> $telnet  
  89.                                 echo 'expect "closed"' >> $telnet  
  90.                                 echo 'exit' >> $telnet  
  91.                                 echo 'EOF' >> $telnet  
  92.  
  93.                                 chmod +x $telnet  
  94.                         fi  
  95.                         $telnet > $temp 2>&1  
  96.                 fi  
  97.                 COD_RET=$?  
  98.  
  99.                 auth=$(cat $temp | grep -c "Password: ")                          #[10]  
  100.                 if [ "$auth" -gt "1" ]  
  101.                 then  
  102.                         echo "Problème d'authentification sur $routeur !"  
  103.                         echo "$routeur : wrong log-in/password" >> $erreur  
  104.                 elif [ "$(grep 'Host name lookup failure' $temp)"  ]  
  105.                 then  
  106.                         echo "l'equipement $routeur n'existe pas !"  
  107.                         echo "$routeur : does not exist"  >> $erreur  
  108.                 elif [ "$(grep 'Unknown host' $temp)" ]  
  109.                 then  
  110.                         echo "la saisie de l'ip ou du nom $routeur est incorrecte !"  
  111.                         echo "$routeur : wrong spelling" >> $erreur  
  112.                 elif [ "$(grep 'send: spawn id exp4 not open' $temp)" ]  
  113.                 then  
  114.                         echo "/!\ ERREUR dans la procédure. Consultez le fichier log de $routeur !!!"  
  115.                         echo "$routeur : Expect script execution failed !" >> $erreur  
  116.                         cp $temp $routeur.error.log  
  117.                 elif [ "$(grep 'Authentication failed' $temp)" ]  
  118.                 then  
  119.                         echo "Mot de passe erroné pour $routeur !"  
  120.                         echo "$routeur : wrong log-in/password" >> $erreur  
  121.                 elif [ "$(grep 'Connection refused' $temp)" ]  
  122.                 then  
  123.                         echo "Connexion à distance sur $routeur désactivé !"  
  124.                         echo "$routeur : vty connection disabled" >> $erreur  
  125.                 elif [ "$(grep 'No route to host' $temp)" ]  
  126.                 then  
  127.                         echo "Alias DNS $routeur existant mais IP invalide !"  
  128.                         echo "$routeur : No route to host" >> $erreur  
  129.                 elif [ "$(grep 'ProCurve' $temp)" ]  
  130.                 then  
  131.                         echo "routeur $routeur HP et non Cisco !"  
  132.                         echo "$routeur : non Cisco router (HP ProCurve)" >> $erreur  
  133.                 elif [ "'grep 'Alcatel' $temp'" ]  
  134.                 then  
  135.                         echo "routeur $routeur Alcatel et non Cisco !"  
  136.                         echo "$routeur : non Cisco router (Alcatel)" >> $erreur  
  137.                 elif [ "$(grep 'Welcome to X1000' $temp)" ]  
  138.                 then  
  139.                         echo "routeur $routeur X1000 et non Cisco !"  
  140.                         echo "$routeur : non Cisco equipement (X1000)" >> $erreur  
  141.                 elif [ "$(grep '% Unknown command' $temp)" -o "$(grep '% Invalid' $temp)" ]  
  142.                 then  
  143.                         echo "/!\ Commandes Cisco non reconnues par l'equipement. Consultez le fichier log de $routeur !!!"  
  144.                         echo "$routeur : Unrecognized commands found" >> $erreur  
  145.                         cp $temp $routeur.error.log  
  146.                 elif [ "$(grep 'Connected to ' $temp)" -o "$(grep 'Connection closed by foreign host.' $temp)" ]  
  147.                 then  
  148.                         echo "$routeur Telnet OK !"  
  149.                 elif [ "$(grep 'Connexion enregistree sur le terminal' $temp)" -o "$(grep 'Connection to ' $temp)" ]  
  150.                 then  
  151.                         echo "$routeur SSH OK !"  
  152.                 elif [ "$COD_RET" != "0" ]  
  153.                 then  
  154.                         echo "Problème de connexion a l'equipement $routeur !"  
  155.                         echo "$routeur : connection problem" >> $erreur  
  156.                 fi  
  157.         fi  
  158. done  
  159. rm -f $temp                                                                      #[11]  
  160. exit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement