Automatisearjen fan yngong yn SecureCRT mei skripts

Netwurkingenieurs steane faak foar de taak om bepaalde fragminten fan in notepad nei de konsole te kopiearjen / te plakjen. Jo moatte meastentiids ferskate parameters kopiearje: Brûkersnamme / Wachtwurd en wat oars. It brûken fan skripts lit jo dit proses fersnelle. MAAR de taken fan it skriuwen fan it skript en it útfieren fan it skript moatte yn totaal minder tiid nimme dan hânmjittich konfiguraasje, oars binne de skripts nutteloos.

Wêr is dit artikel foar? Dit artikel is út 'e Fast Start-searje en is rjochte op it besparjen fan netwurkingenieurs tiid by it ynstellen fan apparatuer (ien taak) op meardere apparaten. Brûkt SecureCRT software en ynboude skript útfiering funksjonaliteit.

Ynhâld

Ynlieding

It programma SecureCRT hat in ynboude skript-útfiermeganisme út 'e doaze. Wêr binne terminalskripts foar?

  • Automatisearre I/O, en minimale I/O-validaasje.
  • Fersnelle de útfiering fan routine taken - ferminderjen fan pauzes tusken apparatuerynstellingen. (De facto reduksje fan pauzes feroarsake troch tiid foar it útfieren fan kopiearje / ferline aksjes op deselde hardware, mei 3 of mear kommando-fragminten dy't moatte wurde tapast op hardware.)

Dit dokumint omfettet de taken:

  • It meitsjen fan ienfâldige skripts.
  • Skripten útfiere op SecureCRT.
  • Foarbylden fan it brûken fan ienfâldige en avansearre skripts. (Oefenje út it echte libben.)

It meitsjen fan ienfâldige skripts.

De ienfâldichste skripts brûke mar twa kommando's, Send en WaitForString. Dizze funksjonaliteit is genôch foar 90% (of mear) fan 'e taken útfierd.

Skripten kinne wurkje yn Python, JS, VBS (Visual Basic), Perl, ensfh.

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()

Gewoanlik in bestân mei de tafoeging "*.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

Gewoanlik in bestân mei de tafoeging "*.vbs"

Meitsje in skript mei in skriptyngong.

Hjirmei kinne jo it proses fan it skriuwen fan in skript automatisearje. Jo begjinne in skript te skriuwen. SecureCRT registrearret de kommando's en de folgjende hardware-antwurd en toant it ôfmakke skript foar jo.

IN. Begjin skript skriuwen:
SecureCRT Menu => Skript => Skript opnimme
b. Útfiere aksjes mei de konsole (fiere konfiguraasje stappen yn de CLI).
V. Foltôgje it skriuwen fan it skript:
SecureCRT Menu => Skript => Skript opnimme ...
Bewarje it skripttriem.

Foarbyld fan útfierde kommando's en bewarre skript:

Automatisearjen fan yngong yn SecureCRT mei skripts

Skripten útfiere op SecureCRT.

Nei it meitsjen/bewurkjen fan it skript komt der in logyske fraach op: Hoe kin it skript tapast wurde?
D'r binne ferskate manieren:

  • Hânmjittich útfiere fanút it Skriptmenu
  • Automatysk start nei ferbining (oanmeldingsskript)
  • Automatysk oanmelde sûnder in skript te brûken
  • Mei de hân triggerje mei in knop yn SecureCRT (in knop moat noch oanmakke wurde en tafoege oan SecureCRT)

Hânmjittich útfiere fanút it Skriptmenu

SecureCRT Menu => Skript => Run…
- De lêste 10 skripts wurde ûnthâlden en beskikber foar rappe lansearring:
SecureCRT menu => Skript => 1 "Skript triemnamme"
SecureCRT menu => Skript => 2 "Skript triemnamme"
SecureCRT menu => Skript => 3 "Skript triemnamme"
SecureCRT menu => Skript => 4 "Skript triemnamme"
SecureCRT menu => Skript => 5 "Skript triemnamme"

Automatysk start nei ferbining (oanmeldingsskript)

Ynstellings foar automatyske oanmeldskript binne konfigureare foar de bewarre sesje: Ferbining => Oanmeldeaksjes => Oanmeldingsskript

Automatisearjen fan yngong yn SecureCRT mei skripts

Automatysk oanmelde sûnder in skript te brûken

It is mooglik om automatysk de brûkersnamme fan it wachtwurd yn te fieren sûnder in skript te skriuwen, mei allinich de ynboude funksjonaliteit fan SecureCRT. Yn 'e ferbiningynstellingen "Ferbining" => Oanmeldeaksjes => Oanmelde automatisearje - jo moatte ferskate bondels ynfolje - wat betsjutte dat de pearen: "ferwachte tekst" + "Tekens nei dizze tekst ferstjoerd" kinne d'r in protte sokke pearen wêze. (Bygelyks: 1e pear wachtet op brûkersnamme, twadde wachtet op wachtwurd, tredde wachtet op befoarrjochte modus prompt, fjirde pear foar befoarrjochte modus wachtwurd.)

Foarbyld fan automatyske oanmelding op Cisco ASA:

Automatisearjen fan yngong yn SecureCRT mei skripts

Mei de hân triggerje mei in knop yn SecureCRT (in knop moat noch oanmakke wurde en tafoege oan SecureCRT)

Yn SecureCRT kinne jo in skript tawize oan in knop. De knop wurdt tafoege oan in paniel spesjaal makke foar dit doel.

IN. In paniel tafoegje oan de ynterface: SecureCRT Menu => View => Knopbalke
b. Foegje in knop ta oan it paniel en foegje in skript ta. - Rjochts-klikke op 'e knopbalke en selektearje "Nije knop ..." út it kontekstmenu.
V. Selektearje yn it dialoochfinster "Kaartknop" yn it fjild "Aksje" de aksje "Skript útfiere" (funksje).
Spesifisearje in titel foar de knop. De kleur foar it knoppictogram. Beëinigje de ynstellings troch te klikken op Ok.

Automatisearjen fan yngong yn SecureCRT mei skripts

Tink derom:

It paniel mei knoppen is heul nuttige funksjonaliteit.

1. It is mooglik, doe't Logon oan in spesifike sesje, te spesifisearjen hokker paniel te iepenjen nei dizze ljepper standert.

2. It is mooglik om te setten foarôf definiearre aksjes foar standert aksjes mei apparatuer: show show ferzje, show running-config, bewarje konfiguraasje.

Automatisearjen fan yngong yn SecureCRT mei skripts
Gjin skript is ferbûn oan dizze knoppen. Allinnich aksjeline:

Automatisearjen fan yngong yn SecureCRT mei skripts
Ynstelling - sadat by it wikseljen nei in sesje it nedige paniel mei knoppen iepenet yn 'e sesje-ynstellings:

Automatisearjen fan yngong yn SecureCRT mei skripts
It makket sin foar de klant om yndividuele skripts yn te stellen foar Login en nei it paniel te gean mei faak kommando's foar de ferkeaper.

Automatisearjen fan yngong yn SecureCRT mei skripts
As jo ​​drukke op de Go Cisco knop, it paniel skeakelt nei de Cisco Button Bar.

Automatisearjen fan yngong yn SecureCRT mei skripts

Foarbylden fan it brûken fan ienfâldige en avansearre skripts. (Oefenje út it echte libben.)

Ienfâldige skripts binne genôch foar hast alle gelegenheden. Mar ienris moast ik it skript in bytsje komplisearje - it wurk fersnelle. Dizze komplikaasje frege gewoan ekstra gegevens yn in dialoochfinster fan de brûker.

Gegevens oanfreegje fan de brûker mei in dialoochfinster

Ik hie 2 yn it datafersykskript. Dit is de hostnamme en it 4e oktet fan it IP-adres. Om dizze aksje út te fieren - ik googlede hoe't ik it dwaan en fûn it op 'e offisjele webside fan SecureCRT (vandyke). - de funksjonaliteit wurdt prompt neamd.

	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") 

Dit diel fan it skript frege om Hostnamme en nûmers fan it lêste oktet. Sûnt wiene der 15 stikken fan apparatuer. En de gegevens waarden presintearre yn in tabel, doe kopiearre ik de wearden út 'e tabel en plakke it yn de dialoochfinsters. Fierder wurke it skript selsstannich.

FTP kopiearje nei netwurk apparatuer.

Dit skript lansearre myn kommando finster (shell) en kopiearre gegevens fia FTP. Oan 'e ein slute de sesje. It is ûnmooglik om notepad foar dit te brûken, om't it kopiearjen in heul lang duorret en de gegevens yn 'e FTP-buffer net sa lang wurde opslein:

# $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()

Brûkersnamme/wachtwurd ynfiere mei in skript

By ien klant tagong ta netwurk apparatuer direkt waard sletten. It wie mooglik om de apparatuer yn te gean troch earst te ferbinen mei de Default Gateway, en dêrwei dan nei de apparatuer dy't dêrmei ferbûn is. De ssh-kliïnt ynboud yn 'e IOS / hardware-software waard brûkt om te ferbinen. Dêrtroch waarden de brûkersnamme en wachtwurd yn 'e konsole oanfrege. Mei it skript hjirûnder waarden de brûkersnamme en wachtwurd automatysk ynfierd:

# $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()

Opmerking: d'r wiene 2 skripts, ien foar it behearderaccount, it twadde foar it eSIGHT-akkount.

Skript mei de mooglikheid om direkt gegevens ta te foegjen tidens skriptútfiering.

De taak wie om in statyske rûte ta te foegjen op alle netwurkapparatuer. Mar de poarte nei it ynternet op elke apparatuer wie oars (en it ferskilde fan 'e standert poarte). It folgjende skript toant de routingtabel, gie de konfiguraasjemodus yn, skreau it kommando net oan 'e ein (it IP-adres fan' e poarte nei it ynternet) - ik haw dit diel tafoege. Neidat ik op Enter drukke, gie it skript troch mei it útfieren fan it kommando.

# $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()

Yn dit skript, yn 'e rigel: crt.Screen.Send ("ip route 10.10.10.8 255.255.255.252 ") wurdt it IP-adres fan 'e gateway net tafoege en der is gjin karre werom. It skript wachtet op de folgjende rigel mei de tekens "(config) #" Dizze tekens ferskynden nei't ik it ip-adres ynfierde en ynfierde.

Konklúzje:

By it skriuwen fan in skript en it útfieren dêrfan moat de regel folge wurde: De tiid foar it skriuwen fan in skript en it útfieren fan in skript moat nea mear wêze as de tiid dy't teoretysk bestege oan itselde wurk mei de hân (kopiearje / plakke fan in notepad, skriuwen en debuggen in playbook foar ansible, skriuwen en debuggen python skript). Dat is, it brûken fan it skript moat tiid besparje, en gjin tiid fergrieme op ienmalige automatisearring fan prosessen (dus as it skript unyk is en der gjin werhelling mear wêze sil). Mar as it skript unyk is en automatisearring mei it skript en it skriuwen / debuggen fan it skript nimt minder tiid dan it op in oare manier te dwaan (ansible, kommandofinster), dan is it skript de bêste oplossing.
Debuggen in skript. It skript groeit stadichoan, debuggen fynt plak op 'e run-in op it earste, twadde, tredde apparaat, en troch de fjirde sil it skript nei alle gedachten folslein operasjoneel wêze.

It útfieren fan in skript (troch brûkersnamme + wachtwurd yn te fieren) mei de mûs is meastentiids flugger dan it kopiearjen fan brûkersnamme en wachtwurd fan in notepad. Mar net feilich út in feiligens eachpunt.
In oar (echt) foarbyld by it brûken fan in skript: Jo hawwe gjin direkte tagong ta netwurk apparatuer. Mar d'r is needsaak om alle netwurkapparatuer te konfigurearjen (bring it yn it tafersjochsysteem, konfigurearje in ekstra brûkersnamme / wachtwurd / snmpv3 brûkersnamme / wachtwurd). D'r is tagong as jo nei de Core-skeakel gean, fanôf jo iepenje SSH nei oare apparatuer. Wêrom kinne jo Ansible net brûke. - Om't wy rinne yn in limyt op it oantal tastiene simultane sesjes op netwurk apparatuer (line vty 0 4, brûkersynterface vty 0 4) (in oare fraach is hoe te begjinnen ferskillende apparatuer yn Ansible mei deselde SSH earste hop).

It skript ferminderet tiid by lange operaasjes - bygelyks it kopiearjen fan bestannen fia FTP. Nei it kopiearjen is foltôge, begjint it skript fuortendaliks te wurkjen. In persoan sil it ein fan it kopiearjen moatte sjen, dan it ein fan it kopiearjen realisearje, en dan de passende kommando's ynfiere. It skript docht it objektyf flugger.

Skripten binne fan tapassing wêr't it ûnmooglik is om ark foar levering fan massagegevens te brûken: Konsole. Of as guon fan 'e gegevens foar de apparatuer unyk is: hostnamme, management ip-adres. Of by it skriuwen fan in programma en debuggen is it dreger dan it tafoegjen fan gegevens dy't ûntfongen binne fan 'e apparatuer wylst it skript rint. - In foarbyld mei in skript foar it foarskriuwen fan in rûte, as elke apparatuer in eigen IP-adres hat fan 'e ynternetprovider. (Myn kollega's skreau sokke skripts - doe't de DMVPN spruts wie mear as 3. It wie nedich om te feroarjen de DMVPN ynstellings).

Case Study: Inisjele ynstellings konfigurearje op in nije skeakel mei de konsole-poarten:

A. Plugged de konsole kabel yn it apparaat.
B. Run it skript
B. Wachte op de útfiering fan it skript
D. Plugged de konsole kabel yn de folgjende apparaat.
E. As de switch net de lêste is, gean dan nei stap B.

As gefolch fan it wurk fan it skript:

  • it earste wachtwurd is ynsteld op 'e apparatuer.
  • Brûkersnamme ynfierd
  • it unike IP-adres fan it apparaat wurdt ynfierd.

PS de operaasje moast werhelle wurde. Omdat Standert ssh wie net konfigurearre / útskeakele. (Ja, dit is myn flater.)

Brûkte boarnen.

1. Oer it meitsjen fan skripts
2. Skriptfoarbylden

Taheakke 1: Sample skripts.


In foarbyld fan in lang skript, mei twa queries: Hostnamme en IP-adres. It waard makke foar it ynstellen fan apparatuer fia de konsole (9600 baud). En ek om de ferbining fan apparatuer oan it netwurk te meitsjen.

# $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()

Sokke skripts binne meastentiids net nedich, mar it bedrach fan apparatuer is 15 pcs. Talitten flugger opset. It wie rapper om de apparatuer yn te stellen mei it SecureCRT Command-finster.

In akkount ynstelle foar ssh.

In oar foarbyld. Konfiguraasje is ek fia de konsole.

# $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()


Oer SecureCRT:Betelle software: fan $ 99 (de lytste priis is allinich foar SecureCRT foar ien jier)
Offisjele webside
In softwarelisinsje wurdt ien kear kocht, mei stipe (foar bywurkjen), dan wurdt de software mei dizze lisinsje foar in ûnbeheinde tiid brûkt.

Wurket op Mac OS X en Windows bestjoeringssystemen.

D'r is skriptstipe (dit artikel)
der binne kommando finster
Serial / Telnet / SSH1 / SSH2 / Shell bestjoeringssysteem

Boarne: www.habr.com