Bejegyzés automatizálása a SecureCRT-ben szkriptek segítségével

A hálózati mérnökök gyakran szembesülnek azzal a feladattal, hogy bizonyos töredékeket másoljanak/beillesztsenek egy jegyzettömbről a konzolra. Általában több paramétert kell másolni: Felhasználónév/Jelszó és valami más. A szkriptek használata lehetővé teszi ennek a folyamatnak a felgyorsítását. DE a szkript megírásának és a szkript végrehajtásának összességében kevesebb időt kell igénybe vennie, mint a kézi konfigurálásnál, különben a szkriptek használhatatlanok.

Mire való ez a cikk? Ez a cikk a Fast Start sorozatból származik, és célja, hogy időt takarítson meg a hálózati mérnökök számára, amikor a berendezéseket (egyetlen feladat) több eszközön állítják be. SecureCRT szoftvert és beépített szkript-végrehajtási funkciót használ.

Tartalom

Bevezetés

A SecureCRT program beépített parancsfájl-végrehajtási mechanizmussal rendelkezik. Mire valók a terminál szkriptek?

  • Automatikus I/O és minimális I/O érvényesítés.
  • Gyorsítsa fel a rutinfeladatok végrehajtását – csökkentse a szüneteket a berendezés beállításai között. (De facto csökkenti az ugyanazon a hardveren végzett másolási/múltbeli műveletek végrehajtási ideje által okozott szüneteket, 3 vagy több parancsrészlettel a hardverre.)

Ez a dokumentum a következő feladatokat tartalmazza:

  • Egyszerű szkriptek készítése.
  • Szkriptek futtatása SecureCRT-n.
  • Példák egyszerű és fejlett szkriptek használatára. (Gyakorlat a való életből.)

Egyszerű szkriptek készítése.

A legegyszerűbb szkriptek csak két parancsot használnak, a Send és a WaitForString parancsot. Ez a funkció az elvégzett feladatok 90%-ára (vagy többre) elegendő.

A szkriptek működhetnek Python, JS, VBS (Visual Basic), Perl stb.

Piton

# $language = "Python"
# $interface = "1.0"
def main():
  crt.Screen.Synchronous = True
  crt.Screen.Send("r")
  crt.Screen.WaitForString("name")
  crt.Screen.Send("adminr")
  crt.Screen.WaitForString("Password:")
  crt.Screen.Send("Password")
  crt.Screen.Synchronous = False
main()

Általában "*.py" kiterjesztésű fájl

VBS

# $language = "VBScript"
# $interface = "1.0"
Sub Main
  crt.Screen.Synchronous = True
  crt.Screen.Send vbcr
  crt.Screen.WaitForString "name"
  crt.Screen.Send "cisco" & vbcr
  crt.Screen.WaitForString "assword"
  crt.Screen.Send "cisco" & vbcr
  crt.Screen.Synchronous = False
End Sub

Általában "*.vbs" kiterjesztésű fájl

Hozzon létre egy szkriptet egy szkriptbejegyzés segítségével.

Lehetővé teszi a szkript írási folyamatának automatizálását. Elkezdesz írni egy forgatókönyvet. A SecureCRT rögzíti a parancsokat és az azt követő hardveres választ, és megjeleníti a kész szkriptet.

A. Kezdje el írni a forgatókönyvet:
SecureCRT Menu => Script => Start Recording Script
b. Hajtsa végre a műveleteket a konzollal (végezze el a konfigurációs lépéseket a CLI-ben).
V. Fejezd be a forgatókönyv megírását:
SecureCRT menü => Szkript => Szkript rögzítésének leállítása…
Mentse el a script fájlt.

Példa végrehajtott parancsokra és mentett szkriptekre:

Bejegyzés automatizálása a SecureCRT-ben szkriptek segítségével

Szkriptek futtatása SecureCRT-n.

A script létrehozása/szerkesztése után logikus kérdés merül fel: Hogyan kell alkalmazni a szkriptet?
Számos módja van:

  • Manuális futtatás a Script menüből
  • Automatikus indítás csatlakozás után (bejelentkezési szkript)
  • Automatikus bejelentkezés script használata nélkül
  • Manuális indítás egy gombbal a SecureCRT-ben (egy gombot még létre kell hozni és hozzá kell adni a SecureCRT-hez)

Manuális futtatás a Script menüből

SecureCRT Menu => Script => Futtatás…
- Az utolsó 10 szkriptet megjegyzi, és gyorsan indítható:
SecureCRT menü => Script => 1 "Szkriptfájl neve"
SecureCRT menü => Script => 2 "Szkriptfájl neve"
SecureCRT menü => Script => 3 "Szkriptfájl neve"
SecureCRT menü => Script => 4 "Szkriptfájl neve"
SecureCRT menü => Script => 5 "Szkriptfájl neve"

Automatikus indítás csatlakozás után (bejelentkezési szkript)

Az automatikus naplózási szkript beállításai a mentett munkamenethez vannak konfigurálva: Kapcsolat => Bejelentkezési műveletek => Bejelentkezési szkript

Bejegyzés automatizálása a SecureCRT-ben szkriptek segítségével

Automatikus bejelentkezés script használata nélkül

Lehetőség van a jelszó felhasználónevének automatikus bevitelére script írása nélkül, csak a SecureCRT beépített funkcióival. A csatlakozási beállításoknál „Kapcsolat” => Bejelentkezési műveletek => Bejelentkezés automatizálása - több köteget kell kitöltenie -, ami a következő párokat jelenti: „Várható szöveg” + „Ebbe a szövegbe küldött karakterek” sok ilyen pár lehet. (Példa: az 1. pár a felhasználónévre, a második a jelszóra, a harmadik a privilegizált módra, a negyedik pár a privilegizált mód jelszavára.)

Példa az automatikus bejelentkezésre a Cisco ASA rendszeren:

Bejegyzés automatizálása a SecureCRT-ben szkriptek segítségével

Manuális indítás egy gombbal a SecureCRT-ben (egy gombot még létre kell hozni és hozzá kell adni a SecureCRT-hez)

A SecureCRT-ben parancsfájlt rendelhet egy gombhoz. A gomb egy speciálisan erre a célra létrehozott panelhez kerül hozzáadásra.

A. Panel hozzáadása a felülethez: SecureCRT Menu => View => Button Bar
b. Adjon hozzá egy gombot a panelhez, és adjon hozzá egy szkriptet. – Kattintson a jobb gombbal a gombsorra, és válassza ki az „Új gomb…” elemet a helyi menüből.
V. A "Térkép gomb" párbeszédpanel "Művelet" mezőjében válassza ki a "Szkript futtatása" műveletet (függvényt).
Adjon meg egy feliratot a gombhoz. A gomb ikonjának színe. Fejezze be a beállításokat az OK gombra kattintva.

Bejegyzés automatizálása a SecureCRT-ben szkriptek segítségével

Megjegyzés:

A gombokkal ellátott panel nagyon hasznos funkció.

1. Egy adott munkamenetbe történő bejelentkezéskor megadható, hogy alapértelmezés szerint melyik panelt kell megnyitni erre a lapra.

2. Lehetőség van előre definiált műveletek beállítására a szabványos műveletekhez a berendezéssel: verzió megjelenítése, futtatás-konfig megjelenítése, konfiguráció mentése.

Bejegyzés automatizálása a SecureCRT-ben szkriptek segítségével
Ezekhez a gombokhoz nincs szkript csatolva. Csak akcióvonal:

Bejegyzés automatizálása a SecureCRT-ben szkriptek segítségével
Beállítás - hogy amikor egy munkamenetre váltunk, a munkamenet beállításaiban megnyílik a szükséges gombokkal ellátott panel:

Bejegyzés automatizálása a SecureCRT-ben szkriptek segítségével
Célszerű, ha az ügyfél egyedi szkripteket állít be a bejelentkezéshez, és a szállító gyakori parancsait tartalmazó panelre lép.

Bejegyzés automatizálása a SecureCRT-ben szkriptek segítségével
Ha megnyomja a Go Cisco gombot, a panel a Cisco gombsorra vált.

Bejegyzés automatizálása a SecureCRT-ben szkriptek segítségével

Példák egyszerű és fejlett szkriptek használatára. (Gyakorlat a való életből.)

Az egyszerű szkriptek szinte minden alkalomra elegendőek. De egyszer egy kicsit bonyolítanom kellett a forgatókönyvet - hogy felgyorsítsam a munkát. Ez a komplikáció csak további adatokat kért a felhasználótól egy párbeszédpanelen.

Adatkérés a felhasználótól párbeszédpanel segítségével

Az adatkérő szkriptben 2 volt. Ez a gazdagépnév és az IP-cím 4. oktettje. Ennek a műveletnek a végrehajtásához - rákerestem a google-ban, hogyan kell csinálni, és megtaláltam a SecureCRT (vandyke) hivatalos honlapján. - a funkciót promptnak nevezik.

	crt.Screen.WaitForString("-Vlanif200]")
	hostnamestr = crt.Dialog.Prompt("Enter hostname:", "hostname", "", False)
	ipaddressstr = crt.Dialog.Prompt("Enter ip address:", "ip", "", False)
	crt.Screen.Send("ip address 10.10.10.")
	crt.Screen.Send(ipaddressstr)
	crt.Screen.Send(" 23r")
	crt.Screen.Send("quitr")
	crt.Screen.Send("sysname ")
	crt.Screen.Send(hostnamestr)
	crt.Screen.Send("r") 

A szkriptnek ez a része a gazdagép nevét és az utolsó oktett számait kérte. Mivel 15 db berendezés volt. És az adatokat táblázatban mutatták be, majd kimásoltam az értékeket a táblázatból, és beillesztem a párbeszédpanelekbe. Továbbá a forgatókönyv önállóan működött.

FTP másolás hálózati berendezésre.

Ez a szkript elindította a parancsablakot (shell), és FTP-n keresztül másolta az adatokat. A végén zárja be a munkamenetet. Ehhez nem lehet jegyzettömböt használni, mert a másolás nagyon sokáig tart, és az FTP pufferben lévő adatok nem tárolódnak ennyi ideig:

# $language = "Python"
# $interface = "1.0"

# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.

def main():
	crt.Screen.Synchronous = True
	crt.Screen.Send("ftp 192.168.1.1r")
	crt.Screen.WaitForString("Name")
	crt.Screen.Send("adminr")
	crt.Screen.WaitForString("Password:")
	crt.Screen.Send("Passwordr")
	crt.Screen.WaitForString("ftp")
	crt.Screen.Send("binaryr")
	crt.Screen.WaitForString("ftp")
	crt.Screen.Send("put S5720LI-V200R011SPH016.patr")
	crt.Screen.WaitForString("ftp")
	crt.Screen.Send("quitr")
	crt.Screen.Synchronous = False
main()

Felhasználónév/jelszó bevitele szkript segítségével

Egy ügyfélnél a hálózati berendezésekhez való közvetlen hozzáférést lezárták. A berendezésbe úgy lehetett belépni, hogy először a Default Gateway-hez, majd onnan a hozzá csatlakoztatott berendezéshez csatlakoztunk. A csatlakozáshoz az IOS/hardver szoftverbe épített ssh klienst használtuk. Ennek megfelelően a konzolban kérték a felhasználónevet és a jelszót. Az alábbi szkripttel a felhasználónév és a jelszó automatikusan beírásra került:

# $language = "Python"
# $interface = "1.0"

# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.

def main():
	crt.Screen.Synchronous = True
	crt.Screen.Send("snmpadminr")
	crt.Screen.WaitForString("assword:")
	crt.Screen.Send("Passwordr")
	crt.Screen.Synchronous = False
main()

Megjegyzés: 2 szkript volt: az egyik a rendszergazdai fiókhoz, a második az eSIGHT fiókhoz.

Szkript, amely képes közvetlenül hozzáfűzni adatokat a szkript végrehajtása során.

A feladat egy statikus útvonal hozzáadása volt az összes hálózati berendezésen. De az internet átjárója minden berendezésen más volt (és különbözött az alapértelmezett átjárótól). A következő szkript megjelenítette az útválasztási táblát, belépett a konfigurációs módba, nem írta ki a parancsot a végére (az Internet átjáró IP-címe) - ezt a részt hozzáadtam. Miután megnyomtam az Entert, a szkript folytatta a parancs végrehajtását.

# $language = "Python"
# $interface = "1.0"

# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.

def main():
	crt.Screen.Synchronous = True
	crt.Screen.Send("Zdes-mogla-bit-vasha-reklamar")
	crt.Screen.WaitForString("#")
	crt.Screen.Send("show run | inc ip router")
	crt.Screen.WaitForString("#")
	crt.Screen.Send("conf tr")
	crt.Screen.WaitForString("(config)#")
	crt.Screen.Send("ip route 10.10.10.8 255.255.255.252 ")
	crt.Screen.WaitForString("(config)#")
	crt.Screen.Send("endr")
	crt.Screen.WaitForString("#")
	crt.Screen.Send("copy run star")
	crt.Screen.WaitForString("[startup-config]?")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("#")
	crt.Screen.Send("exitr")
	crt.Screen.Synchronous = False
main()

Ebben a szkriptben a következő sorban: crt.Screen.Send("ip route 10.10.10.8 255.255.255.252 ") az átjáró IP-címe nincs hozzáadva, és nincs kocsi visszatérési karakter. A szkript a következő sorra vár a "(config) #" karakterekkel Ezek a karakterek az ip cím beírása és beírása után jelentek meg.

következtetés:

A szkript írásakor és végrehajtásakor be kell tartani a szabályt: A szkript írásához és végrehajtásához szükséges idő soha nem lehet több, mint az elméletileg ugyanazon munka manuális elvégzésére fordított idő (jegyzettömbről másolás / beillesztés, írás és hibakeresés). egy játékkönyv az ansible, python szkript írásához és hibakereséséhez). Vagyis a szkript használatával időt kell megtakarítani, és nem szabad időt pazarolni a folyamatok egyszeri automatizálására (vagyis amikor a szkript egyedi, és nem lesz többé ismétlés). De ha a szkript egyedi, és a szkripttel végzett automatizálás és a szkript írása/hibakeresése kevesebb időt vesz igénybe, mint bármilyen más módon (lehető, parancsablak), akkor a szkript a legjobb megoldás.
Szkript hibakeresése. A szkript fokozatosan növekszik, a hibakeresés az első, második, harmadik eszköz bejáratásán történik, a negyedikre pedig nagy valószínűséggel a szkript már teljesen működőképes lesz.

A szkript futtatása (felhasználónév+jelszó megadásával) az egérrel általában gyorsabb, mint a felhasználónév és a jelszó másolása a jegyzettömbről. De biztonsági szempontból nem biztonságos.
Egy másik (valódi) példa szkript használatára: Nincs közvetlen hozzáférése a hálózati berendezésekhez. De szükség van az összes hálózati berendezés konfigurálására (hozza be a megfigyelő rendszerbe, konfiguráljon további felhasználónevet/jelszót/snmpv3felhasználónevet/jelszót). Akkor van hozzáférés, ha a Core switch-re lépsz, onnan nyitod meg az SSH-t más berendezésekre. Miért nem használhatod az Ansible-t? - Mert a hálózati eszközökön (vty 0 4 vonal, felhasználói felület vty 0 4) korlátozzuk a megengedett egyidejű munkamenetek számát (más kérdés, hogy hogyan lehet különböző berendezéseket elindítani az Ansible-ben ugyanazzal az SSH első ugrással).

A szkript csökkenti az időt a hosszú műveletek során – például a fájlok FTP-n keresztüli másolásakor. A másolás befejezése után a szkript azonnal működésbe lép. A személynek látnia kell a másolás végét, majd meg kell értenie a másolás végét, majd be kell írnia a megfelelő parancsokat. A forgatókönyv objektíven gyorsabban csinálja.

A szkriptek ott alkalmazhatók, ahol nem lehet tömeges adattovábbítási eszközöket használni: Konzol. Vagy ha a berendezés egyes adatai egyediek: gazdagépnév, kezelési IP-cím. Vagy egy program írása és hibakeresése nehezebb, mint a szkript futása közben a berendezéstől kapott adatok hozzáadása. - Példa egy útvonal előírására szolgáló szkripttel, amikor minden berendezésnek saját IP-címe van az internetszolgáltatótól. (A kollégáim ilyen szkripteket írtak - amikor a DMVPN beszéde 3 felett volt. Módosítani kellett a DMVPN beállításait).

Esettanulmány: Kezdeti beállítások konfigurálása egy új kapcsolón a konzolportok segítségével:

V. Csatlakoztassa a konzol kábelét az eszközhöz.
B. Futtassa a szkriptet
B. Megvárta a forgatókönyv végrehajtását
D. Csatlakoztassa a konzol kábelét a következő eszközhöz.
E. Ha a kapcsoló nem az utolsó, folytassa a B lépéssel.

A forgatókönyv munkájának eredményeként:

  • a kezdeti jelszó be van állítva a berendezésen.
  • Felhasználónév megadva
  • az eszköz egyedi IP-címe kerül megadásra.

PS a műveletet meg kellett ismételni. Mivel az alapértelmezett ssh nincs beállítva/letiltva. (Igen, ez az én hibám.)

Felhasznált források.

1. A szkriptek létrehozásáról
2. Szkriptpéldák

1. függelék: Minta szkriptek.


Példa egy hosszú szkriptre, két lekérdezéssel: Gazdanév és IP-cím. A berendezések konzolon keresztüli előbeállítására készült (9600 baud). És a berendezések hálózathoz való csatlakoztatásának előkészítése is.

# $language = "Python"
# $interface = "1.0"

# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.

def main():
	crt.Screen.Synchronous = True
	crt.Screen.Send("r")
	crt.Screen.WaitForString("name")
	crt.Screen.Send("adminr")
	crt.Screen.WaitForString("Password:")
	crt.Screen.Send("Passwordr")
	crt.Screen.Send("sysr")
	crt.Screen.WaitForString("]")
	crt.Screen.Send("interface Vlanif 1r")
	crt.Screen.WaitForString("Vlanif1]")
	crt.Screen.Send("undo ip addressr")
	crt.Screen.Send("shutdownr")
	crt.Screen.Send("vlan 100r")
	crt.Screen.Send(" description description1r")
	crt.Screen.Send(" name description1r")
	crt.Screen.Send("vlan 110r")
	crt.Screen.Send(" description description2r")
	crt.Screen.Send(" name description2r")
	crt.Screen.Send("vlan 120r")
	crt.Screen.Send(" description description3r")
	crt.Screen.Send(" name description3r")
	crt.Screen.Send("vlan 130r")
	crt.Screen.Send(" description description4r")
	crt.Screen.Send(" name description4r")
	crt.Screen.Send("vlan 140r")
	crt.Screen.Send(" description description5r")
	crt.Screen.Send(" name description5r")
	crt.Screen.Send("vlan 150r")
	crt.Screen.Send(" description description6r")
	crt.Screen.Send(" name description6r")
	crt.Screen.Send("vlan 160r")
	crt.Screen.Send(" description description7r")
	crt.Screen.Send(" name description7r")
	crt.Screen.Send("vlan 170r")
	crt.Screen.Send(" description description8r")
	crt.Screen.Send(" name description8r")               
	crt.Screen.Send("vlan 180r")
	crt.Screen.Send(" description description9r")
	crt.Screen.Send(" name description9r")
	crt.Screen.Send("vlan 200r")
	crt.Screen.Send(" description description10r")
	crt.Screen.Send(" name description10r")
	crt.Screen.Send("vlan 300r")
	crt.Screen.Send(" description description11r")
	crt.Screen.Send(" name description11r")
	crt.Screen.Send("quitr")
	crt.Screen.WaitForString("]")
	crt.Screen.Send("stp region-configurationr")
	crt.Screen.Send("region-name descr")
	crt.Screen.Send("active region-configurationr")
	crt.Screen.WaitForString("mst-region]")
	crt.Screen.Send("quitr")
	crt.Screen.Send("stp instance 0 priority 57344r")
	crt.Screen.WaitForString("]")
	crt.Screen.Send("interface range GigabitEthernet 0/0/1 to GigabitEthernet 0/0/42r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("description Usersr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port link-type hybridr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("voice-vlan 100 enabler")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("voice-vlan legacy enabler")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port hybrid pvid vlan 120r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port hybrid tagged vlan 100r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port hybrid untagged vlan 120r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("stp edged-port enabler")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("trust 8021pr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control broadcast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control multicast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control action blockr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control enable trapr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("quitr")
	crt.Screen.Send("interface range GigabitEthernet 0/0/43 to GigabitEthernet 0/0/48r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("description Printersr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port link-type accessr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port default vlan 130r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("stp edged-port enabler")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("trust 8021pr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control broadcast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control multicast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control action blockr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control enable trapr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("quitr")
	crt.Screen.Send("interface range XGigabitEthernet 0/0/1 to XGigabitEthernet 0/0/2r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("description uplinkr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port link-type trunkr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port trunk allow-pass vlan 100 110 120 130 140 150 160 170 180 200r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port trunk allow-pass vlan 300r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control broadcast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control multicast min-rate 1000 max-rate 1500r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control action blockr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control enable trapr")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("quitr")
	crt.Screen.Send("ntp-service unicast-server 10.10.10.4r")
	crt.Screen.Send("ntp-service unicast-server 10.10.10.2r")
	crt.Screen.Send("ntp-service unicast-server 10.10.10.134r")
	crt.Screen.Send("ip route-static 0.0.0.0 0.0.0.0 10.10.10.254r")
	crt.Screen.Send("interface Vlanif 200r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
	crt.Screen.Send("r")
	crt.Screen.WaitForString("-Vlanif200]")
        hostnamestr = crt.Dialog.Prompt("Enter hostname:", "hostname", "", False)
        ipaddressstr = crt.Dialog.Prompt("Enter ip address:", "ip", "", False)
	crt.Screen.Send("ip address 10.10.10.")
	crt.Screen.Send(ipaddressstr)
	crt.Screen.Send(" 24r")
	crt.Screen.Send("quitr")
	crt.Screen.Send("sysname ")
	crt.Screen.Send(hostnamestr)
	crt.Screen.Send("r")
	crt.Screen.WaitForString("]")
	crt.Screen.Synchronous = False
main()

Ilyen szkriptekre általában nincs szükség, de a felszerelés mennyisége 15 db. Megengedett gyorsabb beállítás. A SecureCRT Command ablak segítségével gyorsabb volt a berendezés beállítása.

Fiók beállítása ssh-hez.

Egy másik példa. A konfiguráció szintén a konzolon keresztül történik.

# $language = "Python"
# $interface = "1.0"

# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.

def main():
	crt.Screen.Synchronous = True
	crt.Screen.Send("r")
	crt.Screen.WaitForString("name")
	crt.Screen.Send("adminr")
	crt.Screen.WaitForString("Password:")
	crt.Screen.Send("Passwordr")
	crt.Screen.WaitForString(">")
	crt.Screen.Send("sysr")
	crt.Screen.Send("stelnet server enabler")
	crt.Screen.Send("aaar")
	crt.Screen.Send("local-user admin service-type terminal ftp http sshr")
	crt.Screen.Send("quitr")
	crt.Screen.Send("user-interface vty 0 4r")
	crt.Screen.Send("authentication-mode aaar")
	crt.Screen.Send("quitr")
	crt.Screen.Send("quitr")
	crt.Screen.Synchronous = False
main()


A SecureCRT-ről:Fizetett szoftver: 99 dollártól (a legalacsonyabb ár csak a SecureCRT-re vonatkozik egy évre)
Hivatalos oldal
Egy szoftverlicenc egyszer vásárolható meg támogatással (frissítéshez), majd a szoftver ezzel a licenccel korlátlan ideig használható.

Működik Mac OS X és Windows operációs rendszereken.

Van szkript támogatás (ez a cikk)
Van Parancsablak
Soros/Telnet/SSH1/SSH2/Shell operációs rendszer

Forrás: will.com