VĂ”rguteknikud seisavad sageli silmitsi ĂŒlesandega kopeerida ja kleepida teatud fragmente mĂ€rkmikust konsooli. Tavaliselt tuleb kopida mitu parameetrit: kasutajanimi/parool ja midagi veel. Selle protsessi kiirendamiseks on vĂ”imalik kasutada skripte. Kuid skripti kirjutamise ja vĂ€ljalaskmise aeg kokku peab olema vĂ€hem kui kĂ€sitsi seadistamine, muidu on skriptid kasutud.
Milleks see artikkel on. See artikkel kuulub Fast Start seeriasse ja on suunatud vĂ”rgutehnikute aja sÀÀstmisele seadmete (ĂŒhe ĂŒlesande) seadistamisel mitmes seadmes. Kasutatakse tarkvara SecureCRT ja skriptide tĂ€itmise sisseehitatud funktsionaalsust.
Sisukord
Sissejuhatus
SecureCRT programmisse on sisse ehitatud skriptide tÀitmise mehhanism. Miks on skriptid terminalis vajalikud:
- Automatiseeritud sisestamine ja vÀljund ning minimaalne sisendi/vÀljundi Ôigsuse kontroll.
- Taimerite tÀitmise kiirendamine - seadmete seadistamise vaheliste pauside vÀhendamine. (De facto pausi vÀhendamine, mis on pÔhjustatud ajast, mis kulub copy/paste tegevuste tegemiseks samas seadmes, kui rakendatakse 3 vÔi rohkem kÀskluste fragmenti.)
KĂ€esolevas dokumendis kĂ€sitletakse jĂ€rgmisi ĂŒlesandeid:
- Lihtsate skriptide loomine.
- Skriptide kÀivitamine SecureCRT-s.
- Lihtsate ja edasijÔudnud skriptide kasutamise nÀited. (Praktika reaalsest elust.)
Lihtsate skriptide loomine.
Lihtsad skriptid kasutavad vaid kahte kĂ€sku Send ja WaitForString. Seda funktsionaalsust piisab enamiku (90% ja rohkem) tĂ€idetud ĂŒlesannete jaoks.
Skripte saab kirjutada 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 failil 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 failil laiend «*.vbs»
Skripti loomine skripti salvestamise abil.
See vÔimaldab automatiseerida skripti kirjutamise protsessi. KÀivitate skripti salvestamise. SecureCRT salvestab kÀsud ja seadme sellejÀrel antud vastused ning esitab Teile valmis skripti.
a. KĂ€ivitage skripti salvestamine:
MenĂŒĂŒ SecureCRT => Skript => Alusta skripti salvestamist
b. Tehke toimingud konsooliga (tehke seadistusi CLI-s).
c. LÔpetage skripti salvestamine:
MenĂŒĂŒ SecureCRT => Skript => LĂ”peta skripti salvestamine...
Salvesta fail skriptiga.
NÀidis tÀidetud kÀskudest ja salvestatud skriptist:

Skriptide kÀivitamine SecureCRT-s.
PĂ€rast skripti loomist/redigeerimist tekib loogiline kĂŒsimus: Kuidas skripti rakendada?
On mitmeid viise:
- KĂ€sitsi kĂ€ivitamine menĂŒĂŒst Skript
- Automaatne kĂ€ivitamine pĂ€rast ĂŒhendust (logon script)
- Automaatne sisselogimine ilma skripti kasutamata
- KÀivitamine kÀsitsi SecureCRT-s oleva nupu abil (nupp tuleb veel luua ja lisada SecureCRT-sse)
KĂ€sitsi kĂ€ivitamine menĂŒĂŒst Skript
MenĂŒĂŒ SecureCRT => Skript => KĂ€ivitaâŠ
â Viimased 10 skripti salvestatakse ja on kiireks kĂ€itamiseks saadaval:
MenĂŒĂŒ SecureCRT => Skript => 1 «Faili nimi skriptiga»
MenĂŒĂŒ SecureCRT => Skript => 2 «Faili nimi skriptiga»
MenĂŒĂŒ SecureCRT => Skript => 3 «Faili nimi skriptiga»
MenĂŒĂŒ SecureCRT => Skript => 4 «Faili nimi skriptiga »
MenĂŒĂŒ SecureCRT => Skript => 5 «Faili nimi skriptiga»
Automaatne kĂ€ivitamine pĂ€rast ĂŒhendust (logon script)
Automaatse sisselogimise skripti seadeid kohandatakse salvestatud sessioonile: Ăhendus => Logon Actions => Logon skript

Automaatne sisselogimine ilma skripti kasutamata
On vĂ”imalik automaatselt sisestada kasutajanime ja parooli ilma skripti kirjutamata, kasutades ainult SecureCRT sisseehitatud funktsioone. Ăhenduse seadetes «Ăhendus» => Logon Actions => Automaatne sisselogimine â tuleb tĂ€ita mitu paari, mis tĂ€hendavad: «Oodatav tekst» + «Saadetavad sĂŒmbolid sellele tekstile». Seliseid paare vĂ”ib olla palju. (NĂ€iteks: 1. paar ootamine kasutajanime sisestamiseks, 2. paar ootamine parooli sisestamiseks, 3. paar ootamine privileegireĆŸiimi sisenemiseks, 4. paar privileegireĆŸiimi parooliks.)
NĂ€idis automaatse sisselogimise kohta Cisco ASA-l:

KÀivitamine kÀsitsi SecureCRT-s oleva nupu abil (nupp tuleb veel luua ja lisada SecureCRT-sse)
SecureCRT-s saab skripti siduda nupuga. Nupp lisatakse spetsiaalselt selleks loodud paneelile.
a. Lisame paneeli liidese: MenĂŒĂŒ SecureCRT => Vaade => Nuppude riba
b. Lisame nupu paneelile ja lisame skripti. â Parema hiireklĂ”psuga klikime nuppude ribale ja kontekstimenĂŒĂŒs valime «Uus nuppâŠÂ».
c. Dialoogiboksis «Kaardista nupp» valime vÀljale «Tegevus» (function) «KÀivita skript».
MÀÀrame nupu kirjeldust. Nupu ikooni vÀrv. LÔpetame seadistused klikkides Ok.

MĂ€rkus:
Nuppude paneel on vÀga kasulik funktsioon.
1. Logon'i kÀigus saab mÀÀrata, millist paneeli vaikimisi avatakse selle vahekaartide jaoks.
2. Standardsete seadmete toiminguteks saab ette mÀÀrata toimingud: show version, show running-config, salvestada konfiguratsioon.

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

Seadistus â et vahetamisel seansile avatakse vajalik nuppude paneel, tehakse selle seanssi seadistustes:

Kliendile on mĂ”ttekas seadistada individuaalsed skriptid sisselogimiseks ja ĂŒleminekuks sagedaste kĂ€su paneelile mĂŒĂŒja jaoks.
![]()
Nuppu Go Cisco vajutamisel vahetatakse paneel Cisco nuppude paneeli vastu.

Lihtsate ja edasijÔudnud skriptide kasutamise nÀited. (Praktika reaalsest elust.)
Lihtsaid skripte jagub peaaegu kĂ”igi elusituatsioonide jaoks. Kuid ĂŒks kord pidin ma skripti veidi keerukamaks tegema â töö kiirusel. See keerukus oli lihtsalt lisakĂŒsimine tĂ€iendavate andmete kohta dialoogakenis kasutajalt.
Kasutaja andmete tÀitmine dialoogiboksi kaudu
Minu andmete kĂŒsitluses oli 2 kĂŒsimust. Need olid Hostname ja IP aadressi neljas oktet. Selle toimingu tegemiseks googeldasin, kuidas seda teha ja leidsin ametlikult SecureCRT (vandyke) veebilehelt â funktsioon nimetatakse prompt.
crt.Screen.WaitForString("-Vlanif200]")
hostnamestr = crt.Dialog.Prompt("Sisestage hostname:", "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 osa skriptist kĂŒsis Hostname'i ja viimase okteti numbreid. Kuna seadmeid oli 15 tĂŒkki ja andmed olid esitatud tabelis, siis kopeerisin tabelist vÀÀrtusi ja kleepisin need dialoogikastidesse. Edasi töötas skript iseseisvalt.
FTP kopeerimine vÔrguseadmetesse.
See skript avas minu jaoks kÀsuviiba (shell) ja kopeeris andmed FTP kaudu. PÀrast lÔpetamist suleti sessioon. Notepad'i ei saa selleks kasutada, kuna kopeerimine kestab vÀga kaua ja andmed FTP puhverdis ei hoia nii kaua:
# $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 otsepÀÀs vĂ”rgusse seadmetesse suletud. Seadmestikku pÀÀsemiseks tuli esmalt ĂŒhendada vaikimisi vĂ€ravaga ja sealt edasi seadmetesse, mis sellele olid ĂŒhendatud. Ăhenduse loomiseks kasutati IOS-i/ seadme tarkvara integreeritud ssh klienti. Vastavalt kĂŒsiti kasutajanime ja parooli konsoolis. Alloleva 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 kaks. Ăks administraatori konto jaoks, teine eSIGHT konto jaoks.
Skript, mis vÔimaldab andmeid otse skripti tÀitmise ajal lisada.
Ălesanne oli lisada kĂ”ikidele vĂ”rguseadmetele staatiline marsruut. Kuid iga seadme interneti vĂ€rav oli erinev (ja see erineb vaikimisi vĂ€ravast). JĂ€rgmine skript kuvab marsruudialuse tabeli, lĂŒlitub seadistamise reĆŸiimi, kuid ei lĂ”peta kĂ€sku (interneti vĂ€rava IP-aadress) â selle osa lisasin mina. PĂ€rast Enteri vajutamist jĂ€tkas skript kĂ€sku 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 reas: crt.Screen.Send(âip route 10.10.10.8 255.255.255.252 â) ei ole kirjutatud interneti vĂ€rava IP-aadressi ning puudub ridade vahetamise mĂ€rk. Skript ootab jĂ€rgmise rea ilmumist mĂ€rkidega â(config)#â. Need mĂ€rgid ilmusid pĂ€rast minu IP-aadressi sisestamist ja Enteri vajutamist.
KokkuvÔte:
Skripti kirjutamisel ja tĂ€itmisel tuleb tingimusteta jĂ€rgida reeglit: Skripti kirjutamise ja selle tĂ€itmise aeg ei tohi kunagi ĂŒletada teoreetiliselt sellele tööle kuluvat aega kĂ€sitsi (copy/paste Notepadist, playbook'i kirjutamine ja tĂ”rkeotsing Ansible'ile, Python skripti kirjutamine ja tĂ”rkeotsing). See tĂ€hendab, et skript peaks aega sÀÀstma, mitte raiskama aega ĂŒhekordse protsessi automatiseerimisele (st kui skript on ainulaadne ja kordusi ei ole). Kui skript on ainulaadne ja automatiseerimine skripti abil ning skripti kirjutamine/tĂ”rkeotsing vĂ”tab aega vĂ€hem kui mis tahes muu meetod (Ansible, kĂ€surea aknad), siis on skript parim lahendus.
Skripti tÔrkeotsing. Skript kasvab jÀrk-jÀrgult, tÔrkeotsing toimub esimesel, teisel, kolmandal seadmel ja neljandaks on skript tÔenÀoliselt tÀielikult töökorras.
Skripti kÀivitamine (kasutades username + password hiirt) toimub tavaliselt kiiremini kui Username ja Passwordi kopeerimine taasikirjutamisest. Kuid see pole turvakaalutlustest tingitud ohutu.
Teine (reaalne) nĂ€ide, kus skripti kasutamine on vajalik: Teil puudub otsene juurdepÀÀs vĂ”rgu varustusele. Kuid on vaja seadistada kogu vĂ”rgu varustus (lisada jĂ€lgimissĂŒsteemi, seadistada tĂ€iendav Username/password/snmpv3username/password). Juhtumiteks on see, kui te sisse logite Koori lĂŒlitisse, ja avate SSH teisele seadmele. Miks ei saa kasutada Ansible'i vahendeid. â Sest me jÀÀme kinni vĂ”rgu seadmete lubatud samaaegsete seansside arvu piiri (line vty 0 4, user-interface vty 0 4) (teine kĂŒsimus on, kuidas Ansible'is eri varustust ĂŒhe ja sama SSH esimese hĂŒppena seadistada).
Skript lĂŒhendab aega pikaajaliste toimingute puhul â nĂ€iteks failide kopeerimine FTP kaudu. PĂ€rast kopeerimise lĂ”ppemist hakkab skript kohe tööle. Inimene peab nĂ€gema kopeerimise lĂ”ppu, siis teadvustama selle lĂ”ppu, seejĂ€rel sisestama vastavad kĂ€sud. Skript teeb seda objektiivselt kiiremini.
Skripte saab kasutada seal, kus ei ole vĂ”imalik kasutada massaatmissĂŒsteeme: konsool. VĂ”i kui osa andmeid seadme jaoks on unikaalne: hostname, juhtimis IP-aadress. VĂ”i kui programmi kirjutamine ja selle silumine on keerulisem kui skripti töö ajal seadme pealt saadud andmete tĂ€iendamine. â NĂ€iteks skripti puhul marsruudi mÀÀramiseks, kui igal seadmel on oma interneti teenuse pakkuja IP-aadress. (Minu kolleegid on kirjutanud selliseid skripte â kui DMVPN spoke oli ĂŒle 300. Oli vajalik muuta DMVPN seadistusi).
Praktikast nĂ€ide: Esialgsete seadistuste mÀÀramine uuel lĂŒlitil konsooliportide kaudu:
A. Sisestasin konsoolikaabli seadmesse.
B. KĂ€ivitasin skripti
C. Ootasime skripti lÔpetamist
D. Ăhendasin konsoolikaabli jĂ€rgmise seadmega.
E. Kui lĂŒliti ei ole viimane, liikuge punkti B juurde.
KokkuvÔttes skripti töö tulemustest:
- seadmel on mÀÀratud algne parool.
- sisestatud Username
- lisatud seadme unikaalne IP-aadress.
P.S. operatsiooni tuli korrata. Sest vaikimisi ei olnud ssh seadistatud / vĂ€lja lĂŒlitatud. (Jah, see oli minu viga.)
Kasutatud allikad.
1.
2.
Lisa 1: Skriptide nÀited.
Pikk skript, mis koosneb kahest pĂ€ringust: hostinime ja IP-aadressiga. Loodi seadmete eelkonfigureerimiseks konsooli kaudu (9600 bitti). Samuti seadmete vĂ”rku ĂŒhendamise ettevalmistamiseks.
# $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 ei ole tavaliselt vajalikud, kuid seadmeid on 15 tĂŒkki. See kiirendas konfigureerimist. Edasi oli seadmete seadistamine kiiremini vĂ”imalik SecureCRT Command Window abil.
SSH konto seadistamine.
Teine nÀide. Seadistamine toimub samuti konsooli kaudu.
# $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()
SecureCRTist:Tasuline tarkvara: alates 99$ (kÔige madalam hind SecureCRT aastaks)
Tarkvaralicense ostetakse ĂŒks kord, koos toega (uuenduste jaoks), seejĂ€rel kasutatakse tarkvara selle litsentsiga piiramatult.
Toimib operatsioonisĂŒsteemides Mac OS X ja Windows.
Skriptide tugi (see artikkel)
Jah
Serial/Telnet/SSH1/SSH2/Shell operatsioonisĂŒsteem
Allikas: habr.com
