VĂ”rgainseneritel on sageli ĂŒlesanne kanda teatud fragmente notepadist konsooli, tehes copy/paste. Tavaliselt tuleb kopeerida mitmeid parameetreid: kasutajanimi/parool ja midagi veel. Selle protsessi kiirusel aitab automatiseerimine skriptide kasutamine. KUID skripti kirjutamine ja skripti kĂ€itamine kokku peaks vĂ”tma vĂ€hem aega kui kĂ€sitsi seadistamine, muidu on skriptid kasutud.
Kellele on see artikkel mĂ”eldud. See artikkel kuulub kiirkĂ€ivituse tsĂŒklisse ja on suunatud vĂ”rgainsenerite aja kokkuhoiule seadmete seadistamisel (ĂŒhe ĂŒlesande) mitmes seadmes. Kasutatakse tarkvara SecureCRT ja selle sisseehitatud skriptide kĂ€itamise funktsionaalsust.
Sisu
Sissejuhatus
Programmi SecureCRT sisse on integreeritud skriptide tÀitmise mehhanism. Milleks on terminalis skripti vaja:
- Automatiseeritud sisend ja vÀljund ning minimaalne sisendi/vÀljundi kehtivuse kontroll.
- Kiirendada rutiinseid ĂŒlesandeid â vĂ€hendada pause seadmete seadistamisel. (De facto aegade vĂ€hendamine, mis on tingitud tegevuste kopeerimise/kleepimise ajast samas seadmes, kui kasutatakse kolme vĂ”i enama kĂ€skude fragmenti seadmetele.)
Antud dokumendis kĂ€sitletakse ĂŒlesandeid:
- Lihtsaimate skriptide loomine.
- Skriptide kÀivitamine SecureCRT-s.
- Lihtsate ja keerukate skriptide kasutamise nÀited. (Praktika reaalsest elust.)
Lihtsaimate skriptide loomine.
Lihtsamad skriptid kasutavad ainult kahte kĂ€sku Send ja WaitForString. Seda funktsionaalsust piisab 90% (ja enam) tĂ€idetavatest ĂŒlesannetest.
Skripte vÔivad töötada keeltes Python, JS, VBS (Visual Basic), Perl jne.
Python
# $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()
Tavaliselt on faili laiend â*.pyâ
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
Tavaliselt on faili laiend â*.vbsâ
Skripti loomine skripti salvestamise abil.
See vÔimaldab automatiseerida skripti kirjutamise protsessi. Te alustate skripti sooritamist. SecureCRT salvestab kÀsud ja seadmest saadud vastused ning edastab teile valmis skripti.
a. Alustage skripti salvestamist:
MenĂŒĂŒ SecureCRT => Skript => Alusta skripti salvestamist
b. Tehke tegevusi konsoolis (tehke CLI sÀtete seadistamiseks tegevusi).
c. LÔpetage skripti salvestamine:
MenĂŒĂŒ SecureCRT => Skript => LĂ”peta skripti salvestamineâŠ
Salvesta skriptifail.
NÀide sooritatud kÀskudest ja salvestatud skriptist:

Skriptide kÀivitamine SecureCRT-s.
PĂ€rast skripti loomist/redigeerimist tekib loomulik kĂŒsimus: Kuidas rakendada skripti?
On mitmeid viise:
- Manuaalne kĂ€ivitamine Skripti menĂŒĂŒst
- Automaatne kĂ€ivitamine pĂ€rast ĂŒhenduse loomist (logon script)
- Automaatne logon ilma skripti kasutamiseta
- KÀivitamine kÀsitsi SecureCRT nuppude abil (nupp tuleb veel luua ja lisada SecureCRT-sse)
Manuaalne kĂ€ivitamine Skripti menĂŒĂŒst
MenĂŒĂŒ SecureCRT => Skript => KĂ€ivitaâŠ
â Viimased 10 skripti salvestatakse ja on kiireks kĂ€ivitamiseks saadaval:
MenĂŒĂŒ SecureCRT => Skript => 1 âSkripti faili nimiâ
MenĂŒĂŒ SecureCRT => Skript => 2 âSkripti faili nimiâ
MenĂŒĂŒ SecureCRT => Skript => 3 âSkripti faili nimiâ
MenĂŒĂŒ SecureCRT => Skript => 4 âSkripti faili nimiâ
MenĂŒĂŒ SecureCRT => Skript => 5 âSkripti faili nimiâ
Automaatne kĂ€ivitamine pĂ€rast ĂŒhenduse loomist (logon script)
Automaatse logimise skripti sÀtted konfigureeritakse salvestatud sessioonile: Connection => Logon Actions => Logon script

Automaatne logon ilma skripti kasutamiseta
On vĂ”imalik automaatselt sisestada kasutajanimi ja parool ilma skripti kirjutamata, kasutades ainult SecureCRT sisseehitatud funktsionaalsust. Ăhenduse seadetes "Connection" => Logon Actions => Automate logon â tuleb tĂ€ita mitu paari, mis mĂ”istavad endast "Oodatud tekst" + "Sellele tekstile saadetavad sĂŒmbolid". Selliseid paare vĂ”ib olla palju. (NĂ€ide: 1. paar ootab kasutajanime sisestamist, 2. ootab parooli sisestamist, 3. ootab privileegereĆŸiimi kutset, 4. privileegereĆŸiimi parool.)
NĂ€ide automaatsest logonist Cisco ASA-l:

KÀivitamine kÀsitsi SecureCRT nuppude abil (nupp tuleb veel luua ja lisada SecureCRT-sse)
SecureCRT-is saab skripti mÀÀrata nupule. Nuput on lisatud spetsiaalselt selleks loodud töötlusse.
a. Lisame liidese paneeli: MenĂŒĂŒst SecureCRT => Vaade => Nupuriba
b. Lisame nupu paneelile ja lisame skripti. â Parema hiireklĂ”psuga klĂ”psake nupuribal ja kontekstimenĂŒĂŒs valige punkt "Uus nupp...".
c. Dialooge aknas «Map Button» valige vÀljal «Action» tegevus (function) «Run Script».
MÀÀra nuppu allkirja. Nupu ikooni vÀrv. Seadistuste lÔpetamine nupu Ok vajutamisega.

MĂ€rkus:
Nuppudega paneel on vÀga kasulik funktsioon.
1. Logoni ajal on vÔimalik mÀÀrata, milline paneel vaikimisi avatakse antud vahekaardile.
2. Standardsete seadmete tegevuste jaoks on vÔimalik eelnevalt mÀÀrata toimingud: nÀita show version, show running-config, salvesta konfiguratsioon.

Nende nuppudega ei ole seotud ĂŒhtegi skripti. Ainult tegevuste rida:

Seadistus â et sessiooni vahetamisel avaneks vajalik nuppudega paneel, tuleb see seadistada sessiooni seadetes:

Tellija jaoks on mĂ”istlik seadistada individuaalsed skriptid Logini ja ĂŒlemineku jaoks sagedaste kĂ€skude paneeli jaoks mĂŒĂŒgiesindajale.
![]()
Nuppu Go Cisco vajutades vahetub paneel Cisco nuppude baariks.

Lihtsate ja keerukate skriptide kasutamise nÀited. (Praktika reaalsest elust.)
Lihtsaid skripte piisab peaaegu kĂ”ikides eluolukordades. Kuid ĂŒks kord oli mul vaja skripti veidi keerulisemaks muuta â töö kiirendamiseks. See keerukus kĂŒsis lihtsalt kasutajalt dialooge tĂ€iendavaid andmeid.
Kasutaja andmete pÀrimine dialoogikasti abil
Minu andmeskripti pÀringud olid 2. Need olid Hostname ja IP-aadressi neljas oktet. Selle teostamiseks otsisin Google'ist, kuidas seda teha, ja leidsin ametlikult SecureCRT (vandyke) veebisaidilt. Funktsionaalsus kannab nime prompt.
crt.Screen.WaitForString("-Vlanif200]")
hostnamestr = crt.Dialog.Prompt("Sisestage hostinimi:", "hostname", "", False)
ipaddressstr = crt.Dialog.Prompt("Sisestage IP-aadress:", "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")
See skripti osa kĂŒsis Hostname'i ja viimase okteti numbreid. Kuna seadeid oli 15 tk ja andmed olid esitatud tabelis, kopeerisin tabelist vÀÀrtused ja kleepisin need dialoogiboksidesse. Edasi toimis skript iseseisvalt.
FTP kopeerimine vÔrgu seadmetesse.
See skript kÀivitas mul kÀsurea (shell) ja kopeeris andmed FTP kaudu. PÀrast lÔpetamist sulges seansi. Selleks ei saa kasutada Notepadi, kuna kopeerimine kestab vÀga kaua ja andmed FTP puhveres ei jÀÀ nii kaua alles:
# $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()
Kasutajanime/parooli sisestamine skripti abil
Ăhel kliendil oli juurdepÀÀs vĂ”rguseadmetele otseselt suletud. Seadmestikku pÀÀseti ligi esmalt, kui ĂŒhendati vaikimisi vĂ€rava kaudu, ja sealt edasi seadmeta ĂŒhendust luues. Ăhendamiseks kasutati IOS-i / seadme tarkvarasse sisseehitatud SSH-klienti. Vastavalt kĂŒsiti kasutajanime ja parooli konsoolist. AlljĂ€rgneva skripti abil sisestati kasutajanimi ja parool automaatselt:
# $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()
MĂ€rkus: Skripte oli kokku 2. Ăks administraatori kontole, teine eSIGHTi kontole.
Skript, mis vÔimaldab andmeid jooksvalt lisada skripti kÀitamise ajal.
Ălesanne oli lisada kĂ”igile vĂ”rguseadmetele staatiline marsruut. Kuid interneti vĂ€rav igas seadmes oli omaette (ja see erines vaikimisi vĂ€ravast). AlljĂ€rgneva skripti abil vĂ€ljastati marsruutimistabel, viidi konfigureerimise reĆŸiimi, kuid kĂ€sk ei jÀÀnud lĂ”puni kirjutamata (internetivĂ€rava IP-aadress) â selle osa tĂ€itsin mina. PĂ€rast Enteri vajutamist jĂ€tkas skript kĂ€su tĂ€itmist.
# $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()
Antud skriptis on real: crt.Screen.Send(«ip route 10.10.10.8 255.255.255.252 â) mitte ainult puudu, IP-aadressi vĂ€rava osas, vaid ka rea lĂ”petamise sĂŒmbol. Skript ootab jĂ€rgmise rea ilmumist sĂŒmbolitega «(config)#». Need sĂŒmbolid ilmusid pĂ€rast minu poolt sisestatud IP-aadressi ja enteri vajutamist.
KokkuvÔte:
Skripti kirjutamisel ja tĂ€itmisel tuleb alati jĂ€rgida reeglit: skripti kirjutamise ja tĂ€itmise aeg ei tohi kunagi ĂŒletada aega, mis teoreetiliselt kulub sama töö kĂ€sitsi tegemiseks (copy/paste tekstifailist, playbooki kirjutamine ja hÀÀlestamine Ansible'iga, Python skripti kirjutamine ja hÀÀlestamine). See tĂ€hendab, et skripti kasutamine peaks aega kokku hoidma, mitte kulutama aega ĂŒhekordse automatiseerimise protsesside peale (st kui skript on ainulaadne ja kordust ei tule). Kuid kui skript on ainulaadne ning automatiseerimine skripti ja kirjutamise/hÀÀlestamise ajakulu on vĂ€iksem kui teise meetodi (Ansible, kĂ€surea aken) tĂ€itmise aeg, on skript parim lahendus.
Skripti tÔrkeotsing. Skript areneb jÀrk-jÀrgult, tÔrkeotsing toimub esimesel, teisel ja kolmandal seadmel ning neljandaks on skript tÔenÀoliselt tÀielikult töövalmis.
Skripti kÀivitamine (kasutajanime ja parooli sisestamisega) hiirega toimub tavaliselt kiiremini kui kasutajanime ja parooli kopeerimine Notepad'ist. Kuid see pole turvalisuse seisukohalt ohutu.
Teine (reaalne) nĂ€ide skripti kasutamisest: Teil puudub otsene juurdepÀÀs vĂ”rgu seadmetele. Kuid on vajalik kĂ”ik vĂ”rgu seadmed ĂŒmber seadistada (viia jĂ€lgimisse sĂŒsteemi, kohandada tĂ€iendavat kasutajanime/parooli/snmpv3kasutajanime/parooli). Juhtimine on vĂ”imalik, kui sisse logite Core-lĂŒlitisse, kust avate SSH muudele seadmetele. Miks ei saa kasutada Ansible'i vahendeid? â Kuna jÀÀme kinni vĂ”rgu seadmete samaaegsete sessioonide piirangutesse (line vty 0 4, user-interface vty 0 4) (teine kĂŒsimus on, kuidas Ansible'sse erisuguseid seadmeid toimetada sama SSH kaudu esimeses hĂŒppes).
Skripti vÀhendab aega pikaajaliste toimingute, nÀiteks FTP-failide kopeerimise, puhul. PÀrast kopeerimise lÔppu hakkab skript kohe töötama. Inimene peab esmalt nÀgema kopeerimise lÔppu, seejÀrel teadma, et kopeerimine on lÔppenud, ja lÔpuks sisestama vastavad kÀsud. Skript teeb seda objektiivselt kiiremini.
Skripte kasutatakse seal, kus ei ole vĂ”imalik kasutada massilisi andmeedastusvahendeid: konsool. VĂ”i siis, kui osa andmeid seadmele on ainulaadne: hostname, haldus IP-aadress. VĂ”i kui programmi kirjutamine ja selle silumine on keerulisem, kui lisada seadmetelt skripti kĂ€ivitamise ajal saadud andmeid. â NĂ€ide skriptist marsruudi seadmiseks, kui igal seadmel on oma Interneti-teenuse pakkuja IP-aadress. (Minu kolleegid on kirjutanud selliseid skripte â kui DMVPN spoke'i oli ĂŒle 300. DMVPN-i seadistuste muutmine oli vajalik).
Praktiline nĂ€ide: algsete seadistuste seadmine uuel lĂŒlitil lĂ€bi konsooliportide:
A. Ăhendasin konsooli kaabli seadmega.
B. KĂ€ivitasin skripti.
C. Ootasime skripti tÀitmist.
D. Ăhendasin konsooli kaabli jĂ€rgmise seadmega.
D. Kui lĂŒliti ei ole viimane, liikuda punkti B.
Kokku skripti töö tulemustest:
- seadmest on seatud algne parool.
- sisestatud kasutajanimi
- sisestatud seadme unikaalne IP-aadress.
P. S. operatsioon tuli korrata, kuna vaikimisi ssh ei olnud seadistatud/keelatud. (Jah, see oli minu viga.)
Kasutatud allikad.
1.
2.
Rakendus 1: Skriptide nÀidised.
Pikk skript, kus on kaks pĂ€ringut: Hostname ja IP-aadress. Loodi seadmete eelhÀÀlestamiseks konsoolis (9600 bitti). Samuti seadmete ĂŒhendamiseks vĂ”rguga.
# $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()
Sellised skriptid on tavaliselt vajalikud, kuid seadmete arv - 15 tk. Kiirendas seadistamist. Edasi oli seadmete seadistamine kiirem SecureCRT Command akna abil.
Konto seadistamine ssh jaoks.
Teine nÀide. Seadistamine samuti lÀbi konsooli.
# $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()
SecureCRT-st:Tasuline tarkvara: alates 99 $ (kĂ”ige odavam hind ainult SecureCRTi eest ĂŒhe aasta jooksul)
Tarkvara litsents ostetakse ĂŒks kord, koos toega (uuendamiseks), seejĂ€rel kasutatakse tarkvara selle litsentsiga piiramatu aja jooksul.
Töötab operatsioonisĂŒsteemides Mac OS X ja Windows.
On skriptide tugi (see artikkel)
On
Serial/Telnet/SSH1/SSH2/Shell operatsioonisĂŒsteemis
Allikas: habr.com
