Az SSH / Telnet segítségével küldött CISCO parancsok küldése

Általános információ

  • Script neve: publip.sh (publi (point) sh ... publipSH.
  • Rugalmasság: Teljesen testreszabható.
  • Korlátozások: megköveteli, hogy a jelszó megegyezzen az összes eszközzel, vagy néhány sor kódot kell hozzáadnia ...
  • Kockázati szint: Magas. Legyen nagyon óvatos a bejegyzésekkel, a helytelen manipuláció lefagyhatja a teljes hálózatot.
  • Linux-ismeretek szükségesek: Fájl megnyitása / szerkesztése (vi file_name) és módosítások mentése (Esc majd: wq? .Válassza ki a parancsfájlt a ./Scriptnév parancs segítségével a célmappából.

Mi a publip.sh parancsfájl?

Ez a parancsfájl lehetővé teszi, hogy a hálózati rendszergazda SSH-n vagy Telneten keresztül több kiválasztott távoli eszközön (útválasztó, tűzfal, kapcsoló, vezeték nélküli hozzáférési pontok) küldjön Cisco parancsokat (a parancsfájl automatikusan kezeli mindkét típusú kapcsolatot).

  • Ezeket a parancssorokat kezdetben sorrendben, soronként egy parancsként (kötegként vagy konfigurációs fájlként) kell beírni egy kis parancsban: commandes.txt (nincs méretkorlát)
  • Adja meg a hálózat különböző eszközeihez tartozó összes IP-t (vagy DNS-alias-ot) (nincs korlátozva az eszközök száma).
  • Végül a parancsfájl futtatásakor meg kell adnia a jelszót, amely minden esetben azonosnak kell lennie minden eszköz esetében.

A szkript sokkal tovább megy!

Valóban, teljesen autonóm és összekapcsolási hibákat, adatrögzítést és változásokat rögzíthet egy naplófájlban. Ez a szkript azonosítja azt az eszközt is, amelyhez SSH vagy Telnet segítségével csatlakozhat, majd megőrzi a kritikus hibákat generáló eljárásokat (összeomlási parancsfájl, egy eszköz félreértelmezése). A különböző típusú hibák a következők:

  • 1 - Csatlakozási időtúllépés
  • 2 - Bejelentkezési hiba, rossz jelszó
  • 3 - A DNS alias vagy IP nem létezik
  • 4 - Az Expect szkript összeomlása (logikai fájl létrehozása a készülékről)
  • 5 - Távoli kapcsolat letiltva
  • 6 - A DNS alias helyesbítése, de nem létező IP
  • 7 - Nem Cisco berendezés (HP Procurve)
  • 8 - Nem Cisco berendezések (X1000)
  • 9 - Nem Cisco berendezések (Alcatel)
  • 10 -Elküldött parancs, amelyet a készülék nem ismeri fel
  • 11 - Hiba a fent felsorolt ​​hibáknál ($? = 1)

Egyidejűleg képes lesz arra, hogy minden eszközön működjön, és értékes információkat gyűjthessen a hálózaton!

A kiegészítő fájlok tartalma

commandes.txt

Meg kell adnia a parancsokat ... A router konfigurációjának módosításához a fájlnak "conf t" -vel és "end" -vel kell kezdődnie. A módosításokat hierarchikus módon kell végrehajtani, és ne felejtsük el elmenteni a változtatásokat! Kis példa:

 # commandes.txt conf t router ospf 100 hálózat 50.50.100.0 0.0.0.255 terület 0 kilépési interfész fa0 / 0 ip ospf hello-intervallum 5 ip ospf holtintervallum 20 kilépési terület 0 hitelesítési üzenet-feldolgozás vége 

írj mem

liste.txt

Adja meg az összes érintett eszköz IP vagy DNS álnevét:

 # liste.txt 10.25.85.46 routeur-marseille switch-assemblee-generale 80.54.136.105 

A szkript nem veszi figyelembe az üres tereket.

A script

A szkriptet a kis # [1] felirat fogja felírni, amelyet a szkript alján tárgyalunk

 #! / bin / bash # script.sh echo "veuillez donner le mot de passe" stty -echo # [1] jelszó olvasása stty echo export ssh = "./ ssh.sh" # [2] export telnet = "./ telnet.sh "export erreur =" ./ rapport_erreurs.log "export temp =" ./ tmp_routeur.log "export cmdcisco =" ./ commandes.txt "export liste =" ./ liste.txt "export jelszó export útválasztó export parancs rm -f $ erreur # [3] rm -f $ ssh rm -f $ telnet cat $ liste | olvassa el az útvonalát; tedd meg, ha ["$ routeur"! = ""] akkor, ha [! -f $ ssh] # [4], majd echo 'várható 2> & 1 <> $ ssh echo' spawn ssh [email protected] $ routeur '>> $ ssh echo' wait {'>> $ ssh echo' "Jelszó:" {send "$ password r"} '>> $ ssh echo' timeout {exit} '>> $ ssh echo'} '>> $ ssh echo' várható "#" '>> $ ssh cat $ cmdcisco | olvassa el a commande do echo "send" $ commande r "" echo "várható" # "" kész >> $ ssh echo 'send "kilépés r"' >> $ ssh echo "várható" zárt " $ ssh echo 'exit' >> $ ssh echo 'EOF' >> $ ssh chmod + x $ ssh # [5] fi idő p $ ssh> $ temp 2> & 1 # [6] COD_RET = $? auth = "cat $ temp | grep -c" Jelszó: "" # [7], ha ["$ auth" -gt "1"] majd visszhangolja a "Problème d'authentification sur $ routeur!" echo "$ routeur: rossz bejelentkezés / jelszó" >> $ erreur továbbra is fi temps = "grep" valódi '$ temp | sed 's / real / § /' | cut -d'§ '-f2 | cut -d '' -f1 | cut -d '.' -f1 'ha [$ temps -ge 10 -a! "" grep 'zárt' $ temp '"] # [8], majd visszhangozom a" L'equipement $ routeur ne réponds pas! "-t; echo "$ routeur: connection time time" >> $ erreur folytatódik, ha ["$ COD_RET"! = "0"] # [9], akkor #Erreur de connexion a l'équipement en SSH, ha [! -f $ telnet], majd echo 'wait 2> & 1 <> $ telnet echo' spawn telnet $ routeur '>> $ telnet echo' send 'admin r' '>> $ telnet echo' várható 'Jelszó:' '>> $ telnet echo "küldje el a $ jelszót" ">> >> telnet echo" várható "#" '>> $ telnet cat $ cmdcisco | olvassa el a commande do echo "send" $ commande r "" echo "várható" # "" kész >> $ telnet echo "send" kilépés r "'>> $ telnet echo" várható "zárt" $ telnet echo 'exit' >> $ telnet echo 'EOF' >> $ telnet chmod + x $ telnet fi $ telnet> $ temp 2> & 1 fi COD_RET = $? auth = "cat $ temp | grep -c" Jelszó: "" # [10], ha ["$ auth" -gt "1"] majd visszhangolja a "Problème d'authentification sur $ routeur!" echo "$ routeur: rossz bejelentkezés / jelszó" >> $ erreur elif ["'grep' Host name lookup hiba '$ temp'"], majd echo "l'equipement $ routeur n'existe pas!" echo "$ routeur: nem létezik" >> $ erreur elif ["'grep' Ismeretlen gazdagép '$ temp'"], majd visszhangzik "la saisie de l'ip ou du nom $ routeur est wronge!" echo "$ routeur: rossz helyesírás" >> $ erreur elif ["'grep' send: spawn id exp4 nem nyissa meg a" $ temp ""] -t, majd echo "/! ERREUR dans la procédure. Consultez le fichier log de $ routeur! !!” echo "$ routeur: A szkript végrehajtásának várakozása sikertelen!" >> $ erreur cp $ temp $ routeur.error.log elif ["'grep' Hitelesítés sikertelen '$ temp'"], majd visszhangozta a "Mot de passe erroné pour $ routeur!" echo "$ routeur: rossz bejelentkezés / jelszó" >> $ erreur elif ["'grep' kapcsolat visszautasította a" $ temp ""] -t, majd visszhangozta a "Connexion à distance sur $ routeur désactivé!" echo "$ routeur: vty kapcsolat letiltva" >> $ erreur elif ["'grep' Nincs út a '$ temp'" befogadásához, majd echo "Alias ​​DNS $ routeur létező IP IP-hozzáférés!" echo "$ routeur: Nincs útvonal a házigazdához" >> $ erreur elif ["'grep' ProCurve '$ temp'"] majd echo "routeur $ routeur HP és nem Cisco!" echo "$ routeur: nem Cisco útválasztó (HP ProCurve)" >> $ erreur elif ["'grep' Alcatel '$ temp'"], majd visszhangozta "routeur $ routeur Alcatel és nem Cisco!" echo "$ routeur: nem Cisco útválasztó (Alcatel)" >> $ erreur elif ["'grep' Üdvözöljük az X1000 '$ temp'"] -án, majd visszhangozom "routeur $ routeur X1000 és nem Cisco!" echo "$ routeur: nem Cisco berendezések (X1000)" >> $ erreur elif ["'grep'% Ismeretlen parancs '$ temp'" -o "'grep'% Érvénytelen '$ temp'"], majd echo "/! \ t Parancsok Cisco non reconnues par l'equipement. Consultez le fichier log de $ routeur !!! " echo "$ routeur: Ismeretlen parancsok" >> $ erreur cp $ temp $ routeur.error.log elif ["'grep' A '$ temp'" -o "'grep' kapcsolathoz csatlakozott. $ temp '"] majd echo" $ routeur Telnet OK! " elif ["'grep' Connexion enregistree sur le terminal '$ temp'" -o "'grep' Kapcsolat a '$ temp'"] -ra, majd echo "$ routeur SSH OK!" elif ["$ COD_RET"! = "0"], majd visszhangozom a "Problème de connexion a l'equipement $ routeur!" echo "$ routeur: kapcsolat probléma" >> $ erreur fi fi végzett rm -f $ temp # [11] kilépés 

Hozzászólások

  • 1 : A jelszó elrejtése
  • 2 : Minden fájl a változókban tárolódik (relatív elérési út), amely lehetővé teszi a parancsfájl futtatását bárhonnan.
  • 3 : Eltávolítja a már létrehozott fájlokat, ha a parancsfájl már végrehajtásra került.
  • 4 : Hozza létre az Expect parancsfájlt
  • 5 : Engedélyek beállítása az Expect parancsfájlhoz
  • 6 : Végezze el az Expect parancsfájlt, a kimeneti hiba összesítésével a szabványos kimenettel, kiszámítva a végrehajtási időt az időtúllépés kezeléséhez.
  • 7 : Ellenőrizze a hitelesítési problémákat azáltal, hogy számolja a "Jelszó" események számát a temp fájlban.
  • 8 : Ellenőrizze a végrehajtási időt, és ellenőrizze, hogy nem haladja-e meg a 10-et (a várható időtúllépés értéke)
  • 9 : SSH kapcsolat hiba esetén ismételje meg az eljárást a Telnet segítségével.
  • 10 : Ellenőrizze a parancsfájl által generált összes hibahelyet. (Cf II).
  • 11 : Törölje a temp fájlt.

Előző Cikk Következő Cikk

Top Tippek