Скрипт ашиглан SecureCRT-д оруулгыг автоматжуулах

Сүлжээний инженерүүд ихэвчлэн тэмдэглэлийн дэвтэрээс консол руу тодорхой фрагментуудыг хуулах/хуулах ажилтай тулгардаг. Та ихэвчлэн хэд хэдэн параметрүүдийг хуулах хэрэгтэй: хэрэглэгчийн нэр/нууц үг болон өөр зүйл. Скрипт ашиглах нь энэ үйл явцыг хурдасгах боломжийг танд олгоно. ГЭХДЭЭ скрипт бичих, скриптийг гүйцэтгэх ажил нь гарын авлагын тохиргооноос бага хугацаа шаардагдах ёстой, эс тэгвээс скриптүүд ашиггүй болно.

Энэ нийтлэл юунд зориулагдсан бэ? Энэхүү нийтлэл нь Fast Start цувралаас гарсан бөгөөд олон төхөөрөмж дээр тоног төхөөрөмж (нэг даалгавар) тохируулах үед сүлжээний инженерүүдийн цагийг хэмнэх зорилготой юм. SecureCRT программ хангамж болон суурилуулсан скрипт гүйцэтгэх функцийг ашигладаг.

Агуулга

Танилцуулга

SecureCRT программ нь скриптийг гүйцэтгэх механизмтай. Терминал скриптүүд юунд зориулагдсан вэ?

  • Автомат I/O, хамгийн бага I/O баталгаажуулалт.
  • Ердийн ажлуудын гүйцэтгэлийг хурдасгах - тоног төхөөрөмжийн тохиргооны хоорондох завсарлагыг багасгах. (Техник хангамжид 3 ба түүнээс дээш командын хэсгүүдийг ашиглан нэг техник хангамж дээр хуулбарлах/өнгөрөх үйлдлүүдийг гүйцэтгэх хугацаанаас үүдэлтэй түр зогсолтыг бодитоор бууруулсан.)

Энэхүү баримт бичиг нь дараахь ажлуудыг багтаасан болно.

  • Энгийн скрипт үүсгэх.
  • SecureCRT дээр скриптүүдийг ажиллуулж байна.
  • Энгийн болон дэвшилтэт скрипт ашиглах жишээ. (Бодит амьдралаас дадлага хий.)

Энгийн скрипт үүсгэх.

Хамгийн энгийн скриптүүд нь зөвхөн Send болон WaitForString гэсэн хоёр командыг ашигладаг. Энэ функц нь гүйцэтгэсэн ажлуудын 90% (эсвэл түүнээс дээш) хувьд хангалттай юм.

Скриптүүд нь Python, JS, VBS (Visual Basic), Perl гэх мэт дээр ажиллах боломжтой.

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

Ихэвчлэн "*.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

Ихэвчлэн "*.vbs" өргөтгөлтэй файл байдаг.

Скрипт оруулгыг ашиглан скрипт үүсгэ.

Скрипт бичих үйл явцыг автоматжуулах боломжийг танд олгоно. Та скрипт бичиж эхэлнэ. SecureCRT нь командууд болон дараачийн техник хангамжийн хариуг бүртгэж, бэлэн скриптийг танд харуулдаг.

А. Скрипт бичиж эхлэх:
SecureCRT Цэс => Скрипт => Скрипт бичиж эхлэх
б. Консолоор үйлдлүүд хийх (CLI доторх тохиргооны алхмуудыг гүйцэтгэнэ).
В. Скрипт бичиж дуусгах:
SecureCRT Цэс => Скрипт => Скрипт бичихийг зогсоох...
Скрипт файлыг хадгал.

Гүйцэтгэсэн тушаалууд болон хадгалсан скриптийн жишээ:

Скрипт ашиглан SecureCRT-д оруулгыг автоматжуулах

SecureCRT дээр скриптүүдийг ажиллуулж байна.

Скриптийг үүсгэсний дараа / засварласны дараа байгалийн асуулт гарч ирнэ: Скриптийг хэрхэн ашиглах вэ?
Хэд хэдэн арга зам байдаг:

  • Скрипт цэснээс гараар ажиллуулж байна
  • Холболтын дараа автоматаар эхлүүлэх (нэвтрэх скрипт)
  • Скрипт ашиглахгүйгээр автоматаар нэвтрэх
  • SecureCRT дахь товчлуураар гараар өдөөж байна (товчлуурыг SecureCRT-д хараахан үүсгэж, нэмээгүй байна)

Скрипт цэснээс гараар ажиллуулж байна

SecureCRT Цэс => Скрипт => Ажиллуулах…
- Сүүлийн 10 скриптийг санаж байгаа бөгөөд хурдан эхлүүлэх боломжтой:
SecureCRT цэс => Скрипт => 1 "Скрипт файлын нэр"
SecureCRT цэс => Скрипт => 2 "Скрипт файлын нэр"
SecureCRT цэс => Скрипт => 3 "Скрипт файлын нэр"
SecureCRT цэс => Скрипт => 4 "Скрипт файлын нэр"
SecureCRT цэс => Скрипт => 5 "Скрипт файлын нэр"

Холболтын дараа автоматаар эхлүүлэх (нэвтрэх скрипт)

Автомат бүртгэлийн скриптийн тохиргоог хадгалсан сессийн хувьд тохируулсан: Холболт => Нэвтрэх үйлдлүүд => Нэвтрэх скрипт

Скрипт ашиглан SecureCRT-д оруулгыг автоматжуулах

Скрипт ашиглахгүйгээр автоматаар нэвтрэх

Зөвхөн SecureCRT-ийн суулгасан функцийг ашиглан скрипт бичихгүйгээр нууц үгийн хэрэглэгчийн нэрийг автоматаар оруулах боломжтой. Холболтын тохиргоонд "Холболт" => Нэвтрэх үйлдлүүд => Нэвтрэхийг автоматжуулах - та хэд хэдэн багцыг бөглөх хэрэгтэй - энэ нь "Хүлээгдэж буй текст" + "Энэ текст рүү илгээсэн тэмдэгтүүд" гэсэн хосууд гэсэн үг юм. (Жишээ нь: 1-р хос хэрэглэгчийн нэрийг хүлээж байна, хоёр дахь нь нууц үгээ хүлээж байна, гурав дахь хос давуу горимын хүсэлтийг хүлээж байна, дөрөв дэх хос давуу горимын нууц үгээ хүлээж байна.)

Cisco ASA дээр автоматаар нэвтрэх жишээ:

Скрипт ашиглан SecureCRT-д оруулгыг автоматжуулах

SecureCRT дахь товчлуураар гараар өдөөж байна (товчлуурыг SecureCRT-д хараахан үүсгэж, нэмээгүй байна)

SecureCRT дээр та товчлуурт скрипт оноож болно. Товчлуур нь энэ зорилгоор тусгайлан бүтээсэн самбар дээр нэмэгддэг.

А. Интерфэйсэд самбар нэмэх: SecureCRT Цэс => Харах => Товчлуурын мөр
б. Самбар дээр товчлуур нэмж, скрипт нэмнэ үү. – Товчлуурын талбар дээр хулганы баруун товчийг дараад контекст цэснээс "Шинэ товчлуур..."-г сонгоно уу.
В. "Газрын зургийн товчлуур" харилцах цонхны "Үйлдэл" талбараас "Скрипт ажиллуулах" үйлдлийг (функцийг) сонгоно уу.
Товчлуурын тайлбарыг зааж өгнө үү. Товчлуурын дүрсний өнгө. Ok товчийг дарж тохиргоог дуусгана уу.

Скрипт ашиглан SecureCRT-д оруулгыг автоматжуулах

Тайлбар:

Товчлуур бүхий самбар нь маш ашигтай функц юм.

1. Тодорхой сесс рүү нэвтрэх үед анхдагчаар энэ табыг нээх самбарыг зааж өгөх боломжтой.

2. Тоног төхөөрөмжтэй стандарт үйлдлүүдэд зориулж урьдчилан тодорхойлсон үйлдлүүдийг тохируулах боломжтой: хувилбарыг харуулах, ажиллаж байгаа тохиргоог харуулах, тохиргоог хадгалах.

Скрипт ашиглан SecureCRT-д оруулгыг автоматжуулах
Эдгээр товчлууруудад ямар ч скрипт хавсаргаагүй. Зөвхөн үйлдлийн шугам:

Скрипт ашиглан SecureCRT-д оруулгыг автоматжуулах
Тохиргоо - сесс руу шилжих үед сессийн тохиргоонд шаардлагатай товчлуур бүхий самбар нээгдэнэ.

Скрипт ашиглан SecureCRT-д оруулгыг автоматжуулах
Үйлчлүүлэгч нь Нэвтрэх хувийн скриптийг тохируулж, борлуулагчдад байнга тушаал өгөх самбар руу очих нь утга учиртай юм.

Скрипт ашиглан SecureCRT-д оруулгыг автоматжуулах
Go Cisco товчийг дарахад самбар нь Cisco товчлуурын мөрөнд шилжинэ.

Скрипт ашиглан SecureCRT-д оруулгыг автоматжуулах

Энгийн болон дэвшилтэт скрипт ашиглах жишээ. (Бодит амьдралаас дадлага хий.)

Энгийн скрипт нь бараг бүх тохиолдолд хангалттай. Гэхдээ нэг удаа би ажлыг хурдасгахын тулд скриптийг бага зэрэг төвөгтэй болгох хэрэгтэй болсон. Энэ хүндрэл нь хэрэглэгчээс харилцах цонхонд нэмэлт мэдээлэл хүссэн.

Харилцах цонхыг ашиглан хэрэглэгчээс өгөгдөл хүсэх

Өгөгдлийн хүсэлтийн скриптэд надад 2 байсан. Энэ нь хостын нэр ба IP хаягийн 4-р октет юм. Энэ үйлдлийг гүйцэтгэхийн тулд би үүнийг хэрхэн хийхийг google-ээс хайж, SecureCRT (vandyke) албан ёсны вэбсайтаас олсон. - функцийг шуурхай гэж нэрлэдэг.

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

Скриптийн энэ хэсэг нь сүүлийн октетийн хостын нэр болон дугаарыг хүссэн. Учир нь 15 ширхэг тоног төхөөрөмж байсан. Өгөгдлийг хүснэгтэд үзүүлсний дараа би хүснэгтээс утгуудыг хуулж, харилцах цонхонд буулгав. Цаашид скрипт нь бие даан ажилласан.

Сүлжээний төхөөрөмж рүү FTP хуулах.

Энэ скрипт нь миний командын цонхыг (бүрхүүл) эхлүүлж, өгөгдлийг FTP-ээр хуулсан. Төгсгөлд нь хуралдааныг хаа. Үүний тулд тэмдэглэлийн дэвтэр ашиглах боломжгүй, учир нь хуулах нь маш удаан хугацаа шаардагдах бөгөөд FTP буфер дэх өгөгдөл удаан хугацаанд хадгалагдахгүй.

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

Скрипт ашиглан хэрэглэгчийн нэр/нууц үг оруулж байна

Нэг хэрэглэгчдэд сүлжээний төхөөрөмжид шууд нэвтрэх эрхийг хаасан. Эхлээд Default Gateway руу холбогдож, дараа нь түүнд холбогдсон тоног төхөөрөмж рүү орох боломжтой байсан. Холбогдохын тулд IOS/техникийн програм хангамжид суулгасан ssh клиентийг ашигласан. Үүний дагуу хэрэглэгчийн нэр, нууц үгийг консолоос хүссэн. Доорх скриптийн тусламжтайгаар хэрэглэгчийн нэр, нууц үг автоматаар орсон болно:

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

Жич: 2 скрипт байсан. Нэг нь администраторын бүртгэлд, хоёр дахь нь eSIGHT бүртгэлд зориулагдсан.

Скриптийг гүйцэтгэх явцад шууд өгөгдөл нэмэх чадвартай скрипт.

Даалгавар бол бүх сүлжээний төхөөрөмж дээр статик маршрут нэмэх явдал байв. Гэхдээ төхөөрөмж бүрийн интернетийн гарц нь өөр өөр байсан (мөн энэ нь анхдагч гарцаас ялгаатай). Дараах скрипт нь чиглүүлэлтийн хүснэгтийг харуулсан, тохиргооны горимд орсон, командыг эцэс хүртэл бичээгүй (Интернетийн гарцын IP хаяг) - Би энэ хэсгийг нэмсэн. Намайг Enter дарсны дараа скрипт тушаалыг үргэлжлүүлэн гүйцэтгэсэн.

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

Энэ скриптийн: crt.Screen.Send("ip route 10.10.10.8 255.255.255.252") мөрөнд гарцын IP хаяг нэмээгүй бөгөөд буцах тэмдэгт байхгүй байна. Скрипт нь "(тохиргоо) #" тэмдэгттэй дараагийн мөрийг хүлээж байна Эдгээр тэмдэгтүүд намайг IP хаягаа оруулсны дараа гарч ирсэн.

Дүгнэлт:

Скрипт бичиж, гүйцэтгэхдээ дараах дүрмийг баримтлах ёстой: Скрипт бичих, скрипт гүйцэтгэх хугацаа нь ижил ажлыг гараар хийхэд онолын хувьд зарцуулсан хугацаанаас хэтрэхгүй байх ёстой (тэмдэглэлийн дэвтэрээс хуулах / буулгах, бичих, алдаа засах). python скриптийг ойлгох, бичих, дибаг хийхэд зориулсан тоглоомын ном). Өөрөөр хэлбэл, скриптийг ашиглах нь цаг хугацаа хэмнэж, үйл явцыг нэг удаагийн автоматжуулахад цаг алдахгүй байх ёстой (жишээ нь, скрипт нь өвөрмөц бөгөөд дахин давтагдахгүй байх болно). Гэхдээ скрипт нь өвөрмөц бөгөөд скриптийг автоматжуулах, бичих / дибаг хийх нь өөр аргаар хийхээс бага цаг зарцуулдаг бол (харгалзах, тушаалын цонх) бол скрипт нь хамгийн сайн шийдэл юм.
Скриптийг дибаг хийж байна. Скрипт нь аажмаар нэмэгдэж, дибаг хийх нь эхний, хоёр, гурав дахь төхөөрөмж дээр хийгдэх бөгөөд дөрөв дэх нь скрипт бүрэн ажиллагаатай байх магадлалтай.

Скриптийг хулганаар (хэрэглэгчийн нэр+нууц үг оруулах замаар) ажиллуулах нь хэрэглэгчийн нэр, нууц үгээ тэмдэглэлийн дэвтэрээс хуулахаас илүү хурдан байдаг. Гэхдээ аюулгүй байдлын үүднээс аюулгүй биш.
Скрипт ашиглах өөр (бодит) жишээ: Та сүлжээний төхөөрөмжид шууд хандах эрхгүй. Гэхдээ сүлжээний бүх төхөөрөмжийг тохируулах шаардлагатай байна (үүнийг хяналтын системд оруулах, нэмэлт хэрэглэгчийн нэр/нууц үг/snmpv3 хэрэглэгчийн нэр/нууц үгийг тохируулах). Та үндсэн шилжүүлэгч рүү очиход SSH-г өөр төхөөрөмж рүү нээнэ үү. Та яагаад Ansible ашиглаж болохгүй гэж. - Учир нь бид сүлжээний төхөөрөмж дээр нэгэн зэрэг зөвшөөрөгдсөн сессийн тоонд хязгаарлалт тавьдаг (шугам vty 0 4, хэрэглэгчийн интерфэйс vty 0 4) (өөр нэг асуулт бол Ansible-д өөр өөр төхөөрөмжийг ижил SSH эхний хопоор хэрхэн эхлүүлэх явдал юм).

Скрипт нь урт хугацааны үйл ажиллагааны явцад цагийг багасгадаг - жишээлбэл, FTP-ээр файл хуулах. Хуулбарлаж дууссаны дараа скрипт шууд ажиллаж эхэлнэ. Хүн хуулбарлахын төгсгөлийг харж, дараа нь хуулах төгсгөлийг ойлгож, зохих тушаалуудыг оруулах шаардлагатай болно. Скрипт нь үүнийг илүү хурдан хийдэг.

Мэдээлэл дамжуулах хэрэгслийг ашиглах боломжгүй тохиолдолд скрипт ашиглах боломжтой: Консол. Эсвэл тоног төхөөрөмжийн зарим өгөгдөл өвөрмөц байвал: хостын нэр, удирдлагын IP хаяг. Эсвэл програм бичиж, дибаг хийх нь скрипт ажиллаж байх үед төхөөрөмжөөс хүлээн авсан өгөгдлийг нэмэхээс илүү хэцүү байдаг. - Тоног төхөөрөмж бүр интернетийн үйлчилгээ үзүүлэгчийн өөрийн IP хаягтай байх үед маршрутыг зааж өгөх скрипт бүхий жишээ. (Миний хамт олон ийм скрипт бичсэн - DMVPN ярих үед 3 гаруй байсан. DMVPN тохиргоог өөрчлөх шаардлагатай байсан).

Кейс судалгаа: Консолын портуудыг ашиглан шинэ шилжүүлэгчийн анхны тохиргоог тохируулах:

A. Консолын кабелийг төхөөрөмжид залгасан.
B. Скриптийг ажиллуул
B. Скриптийн гүйцэтгэлийг хүлээж байв
D. Консолын кабелийг дараагийн төхөөрөмжид залгасан.
E. Хэрэв шилжүүлэгч нь сүүлчийнх биш бол В алхам руу очно уу.

Скриптийн ажлын үр дүнд:

  • анхны нууц үгийг төхөөрөмж дээр тохируулсан.
  • Хэрэглэгчийн нэрийг оруулсан
  • төхөөрөмжийн өвөрмөц IP хаягийг оруулсан болно.

Жич, мэс заслыг дахин хийх шаардлагатай болсон. Учир нь өгөгдмөл ssh тохируулагдаагүй/идэвхгүй. (Тийм ээ, энэ бол миний алдаа.)

Ашигласан эх сурвалжууд.

1. Скрипт үүсгэх тухай
2. Скриптийн жишээнүүд

Хавсралт 1: Жишээ скриптүүд.


Хостын нэр ба IP хаяг гэсэн хоёр асуулт бүхий урт скриптийн жишээ. Энэ нь консолоор (9600 бауд) тоног төхөөрөмжийг урьдчилан тохируулах зорилгоор бүтээгдсэн. Мөн тоног төхөөрөмжийг сүлжээнд холбох ажлыг бэлтгэх.

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

Ийм скриптүүд ихэвчлэн шаардлагагүй байдаг боловч тоног төхөөрөмжийн хэмжээ 15 ширхэг байдаг. Илүү хурдан тохируулахыг зөвшөөрсөн. SecureCRT командын цонхыг ашиглан төхөөрөмжийг тохируулах нь илүү хурдан байсан.

ssh-д зориулсан бүртгэл тохируулж байна.

Өөр нэг жишээ. Тохиргоог мөн консолоор дамжуулан хийдэг.

# $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-ийн тухай:Төлбөртэй програм хангамж: 99 доллараас (хамгийн бага үнэ нь зөвхөн SecureCRT-д нэг жилийн хугацаатай)
Албан ёсны вэб сайт
Програм хангамжийн лицензийг дэмжлэгтэйгээр (шинэчлэх зорилгоор) нэг удаа худалдаж авдаг бөгөөд дараа нь програм хангамжийг энэ лицензээр хязгааргүй хугацаагаар ашигладаг.

Mac OS X болон Windows үйлдлийн системүүд дээр ажиллана.

Скриптийн дэмжлэг байдаг (энэ нийтлэл)
Байдаг Тушаалын цонх
Serial/Telnet/SSH1/SSH2/Shell үйлдлийн систем

Эх сурвалж: www.habr.com