Otomatiskan input ke SecureCRT menggunakan skrip

Insinyur jaringan sering memiliki tugas menyalin / menempelkan fragmen tertentu dari notepad ke konsol. Biasanya, Anda harus menyalin beberapa parameter: Nama Pengguna / Kata Sandi dan yang lainnya. Penggunaan skrip memungkinkan Anda untuk mempercepat proses ini. TETAPI tugas menulis skrip dan menjalankan skrip secara total seharusnya memakan waktu lebih sedikit daripada konfigurasi manual, jika skrip tidak berguna.

Untuk apa artikel ini? Artikel ini berasal dari siklus Mulai Cepat dan bertujuan untuk menghemat waktu bagi teknisi jaringan saat mengatur peralatan (satu tugas) pada beberapa perangkat. Ini menggunakan perangkat lunak SecureCRT dan fungsi eksekusi skrip bawaan.



pengantar


Mesin eksekusi skrip dibangun ke dalam program SecureCRT di luar kotak. Mengapa kita membutuhkan skrip di terminal:

  • Input dan output otomatis, dan minimal memeriksa kebenaran input / output.
  • Untuk mempercepat kinerja tugas rutin - mengurangi jeda di antara pengaturan peralatan. (Pengurangan jeda secara de facto yang disebabkan oleh waktu untuk menyalin / tindakan sebelumnya pada peralatan yang sama, dengan 3 atau lebih fragmen perintah untuk digunakan pada peralatan tersebut.)

Dokumen ini menjelaskan tugas-tugas:

  • Membuat skrip sederhana.
  • Menjalankan skrip di SecureCRT.
  • Contoh menggunakan skrip sederhana dan lanjutan. (Berlatih dari kehidupan nyata.)


Membuat skrip sederhana.


Script paling sederhana hanya menggunakan dua perintah Send dan WaitForString. Fungsi ini cukup untuk 90% (atau lebih) tugas yang dilakukan.

Skrip dapat bekerja dalam Python, JS, VBS (Visual Basic), Perl, dll.

Python


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

Biasanya file dengan ekstensi "* .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

Biasanya file dengan ekstensi "* .vbs"

Membuat skrip dengan menulis skrip.


Memungkinkan Anda untuk mengotomatiskan proses penulisan skrip. Anda mulai merekam skrip. SecureCRT mencatat perintah dan respons selanjutnya dari peralatan dan menampilkan skrip yang sudah jadi.

dan. Jalankan perekaman skrip:
Menu SecureCRT => Script => Mulai Recording Script
b. Lakukan tindakan dengan konsol (lakukan langkah-langkah konfigurasi di CLI).
di. Untuk menyelesaikan perekaman skrip:
Menu SecureCRT => Script => Stop Recording Script ...
Simpan file dengan skrip.

Contoh perintah yang dijalankan dan skrip yang disimpan:



Menjalankan skrip di SecureCRT.


Setelah membuat / mengedit skrip, muncul pertanyaan logis: Bagaimana cara menerapkan skrip?
Ada beberapa cara:

  • Manual mulai dari menu Script
  • Mulai otomatis setelah koneksi (skrip masuk)
  • Masuk otomatis tanpa menggunakan skrip
  • Manual mulai menggunakan tombol di SecureCRT (tombol belum dibuat dan ditambahkan ke SecureCRT)


Manual mulai dari menu Script


Menu SecureCRT => Script => Run ...
- 10 skrip terakhir diingat dan tersedia untuk peluncuran cepat:
menu SecureCRT => Script => 1 "Nama file skrip"
Menu SecureCRT => Script => 2 "Nama file skrip"
Menu SecureCRT => Script => 3 “Nama file dengan skrip”
Menu SecureCRT => Script => 4 “Nama file dengan skrip”
Menu SecureCRT => Script => 5 “Nama file dengan skrip”

Mulai otomatis setelah koneksi (skrip masuk)


Pengaturan untuk skrip logging otomatis dikonfigurasi untuk sesi yang disimpan: Koneksi => Logon Actions => Script logon



Masuk otomatis tanpa menggunakan skrip


Dimungkinkan untuk secara otomatis memasukkan nama pengguna kata sandi tanpa menulis skrip hanya menggunakan fungsionalitas SecureCRT bawaan. Dalam pengaturan koneksi "Connection" => Logon Actions => Automate logon - Anda perlu mengisi beberapa bundel - yang melibatkan pasangan: "Teks yang diharapkan" + "Karakter yang dikirim ke teks ini" mungkin ada banyak pasangan seperti itu. (Contoh: pasangan pertama menunggu nama pengguna, kedua menunggu kata sandi, ketiga menunggu undangan ke mode privilege, kata sandi keempat dari mode privilege.)

Contoh login otomatis pada Cisco ASA:



Manual mulai menggunakan tombol di SecureCRT (tombol belum dibuat dan ditambahkan ke SecureCRT)


Di SecureCRT, Anda dapat menentukan tombol skrip. Tombol ditambahkan ke panel yang dibuat khusus untuk tujuan ini.

dan. Tambahkan panel ke antarmuka: SecureCRT Menu => View => Bilah Tombol
b. Tambahkan tombol ke panel dan tambahkan skrip. - Klik kanan pada Bilah Tombol dan pilih "Tombol baru ..." di menu konteks.
di. Di kotak dialog "Tombol Peta" di bidang "Tindakan" Pilih tindakan (fungsi) "Jalankan Skrip".
Tentukan tanda tangan untuk tombol. Ikon warna untuk tombol. Selesaikan pengaturan dengan mengklik Ok.



Catatan:

Bilah tombol adalah fitur yang sangat berguna.

1. Logon dapat menunjukkan sesi tertentu yang panelnya akan dibuka secara default untuk tab ini.

2. Ada kemungkinan untuk tindakan standar dengan peralatan untuk mengatur tindakan yang telah ditentukan: tampilkan versi acara, tampilkan running-config, simpan konfigurasi.


Tidak ada skrip yang dilampirkan pada tombol-tombol ini. Hanya sebaris dengan tindakan:


Pengaturan - sehingga saat Anda beralih ke sesi, panel yang diperlukan dengan tombol terbuka di pengaturan sesi:


Masuk akal bagi pelanggan untuk mengonfigurasi skrip individual untuk Login dan pergi ke panel dengan perintah yang sering untuk vendor.


Ketika Anda mengklik tombol Cisco Go, panel beralih ke Cisco Button Bar.



Contoh menggunakan skrip sederhana dan lanjutan. (Berlatih dari kehidupan nyata.)


Skrip sederhana sudah cukup untuk hampir semua kesempatan. Tapi begitu saya perlu sedikit menyulitkan skrip - untuk mempercepat pekerjaan. Komplikasi ini hanya meminta data tambahan di kotak dialog dari pengguna.

Meminta data dari pengguna menggunakan kotak dialog


Saya memiliki 2 dalam skrip permintaan data. Ini adalah Hostname dan oktet ke 4 dari alamat IP. Untuk melakukan tindakan ini - saya mencari cara melakukannya di Google dan menemukannya di situs resmi SecureCRT (vandyke). - fungsinya disebut prompt.

	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(" 23\r")
	crt.Screen.Send("quit\r")
	crt.Screen.Send("sysname ")
	crt.Screen.Send(hostnamestr)
	crt.Screen.Send("\r") 

Bagian skrip ini meminta Hostname dan angka dari oktet terakhir. Karena peralatannya 15 pcs. Dan data disajikan dalam tabel, kemudian saya menyalin nilai-nilai dari tabel dan menempelkannya ke kotak dialog. Selanjutnya skrip bekerja secara mandiri.

Menyalin FTP ke peralatan jaringan.


Skrip ini meluncurkan jendela perintah saya (shell) dan menyalin data melalui FTP. Setelah selesai, dia menutup sesi. Tidak mungkin menggunakan notepad untuk ini, karena menyalin membutuhkan waktu yang sangat lama dan data dalam buffer FTP tidak akan banyak disimpan:

# $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.1\r")
	crt.Screen.WaitForString("Name")
	crt.Screen.Send("admin\r")
	crt.Screen.WaitForString("Password:")
	crt.Screen.Send("Password\r")
	crt.Screen.WaitForString("ftp")
	crt.Screen.Send("binary\r")
	crt.Screen.WaitForString("ftp")
	crt.Screen.Send("put S5720LI-V200R011SPH016.pat\r")
	crt.Screen.WaitForString("ftp")
	crt.Screen.Send("quit\r")
	crt.Screen.Synchronous = False
main()


Memasukkan nama pengguna / kata sandi menggunakan skrip


Di satu pelanggan, akses ke peralatan jaringan langsung ditutup. Anda dapat mengakses peralatan dengan terlebih dahulu menghubungkan ke gateway default, dan kemudian dari itu kemudian peralatan terhubung ke itu. Untuk menghubungkan, kami menggunakan klien ssh yang dibangun ke dalam perangkat iOS / perangkat lunak. Oleh karena itu, nama pengguna dan kata sandi diminta di konsol. Dengan menggunakan skrip di bawah ini, nama pengguna dan kata sandi dimasukkan secara otomatis:

# $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("snmpadmin\r")
	crt.Screen.WaitForString("assword:")
	crt.Screen.Send("Password\r")
	crt.Screen.Synchronous = False
main()

Catatan: Skripnya adalah 2. Satu untuk akun administrator, yang kedua untuk akun eSIGHT.

Sebuah skrip dengan kemampuan untuk secara langsung menambahkan data selama eksekusi skrip.


Tugasnya adalah menambahkan rute statis pada semua peralatan jaringan. Tetapi gateway Internet pada masing-masing peralatan memiliki sendiri (dan itu berbeda dari gateway default). Skrip berikut menampilkan tabel perutean, memasuki mode konfigurasi dan tidak sepenuhnya menyelesaikan perintah (alamat IP Internet gateway) - Saya menambahkan bagian ini. Setelah saya menekan Enter, skrip melanjutkan untuk menjalankan perintah.

# $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-reklama\r")
	crt.Screen.WaitForString("#")
	crt.Screen.Send("show run | inc ip route\r")
	crt.Screen.WaitForString("#")
	crt.Screen.Send("conf t\r")
	crt.Screen.WaitForString("(config)#")
	crt.Screen.Send("ip route 10.10.10.8 255.255.255.252 ")
	crt.Screen.WaitForString("(config)#")
	crt.Screen.Send("end\r")
	crt.Screen.WaitForString("#")
	crt.Screen.Send("copy run sta\r")
	crt.Screen.WaitForString("[startup-config]?")
	crt.Screen.Send("\r")
	crt.Screen.WaitForString("#")
	crt.Screen.Send("exit\r")
	crt.Screen.Synchronous = False
main()

Dalam skrip ini, di baris: crt.Screen.Send ("ip route 10.10.10.8 255.255.255.252"), alamat IP gateway tidak ditambahkan dan tidak ada karakter carriage return. Script sedang menunggu baris berikutnya dengan karakter "(config) #" muncul. Karakter ini muncul setelah saya memasukkan alamat ip dan masukkan.

Kesimpulan:


Saat menulis skrip dan mengeksekusi, aturan pasti harus diikuti: Waktu untuk menulis skrip dan eksekusi skrip tidak boleh lebih dari waktu yang dihabiskan secara teoritis untuk melakukan pekerjaan yang sama secara manual (menyalin / menempel dari notepad, menulis dan men-debug buku pedoman untuk memungkinkan, menulis, dan debugging skrip python). Artinya, menggunakan skrip harus menghemat waktu, dan tidak membuang waktu untuk otomatisasi proses satu kali (yaitu, saat skrip itu unik dan tidak akan ada pengulangan lagi). Tetapi jika skripnya unik dan otomatisasi dengan skrip dan penulisan / debugging skrip membutuhkan waktu lebih sedikit daripada eksekusi dengan cara lain (mungkin, jendela perintah), maka skrip adalah solusi terbaik.
Mendebug skrip. Script tumbuh secara bertahap, debugging terjadi saat dijalankan pada perangkat pertama, kedua, ketiga dan pada keempat script kemungkinan besar akan sepenuhnya operasional.

Menjalankan skrip (dengan nama pengguna + kata sandi) menggunakan mouse biasanya lebih cepat daripada menyalin Nama Pengguna dan Kata Sandi dari Notepad. Tapi tidak aman dari sudut pandang keamanan.
Contoh (nyata) lain ketika menggunakan skrip: Anda tidak memiliki akses langsung ke peralatan jaringan. Tetapi ada kebutuhan untuk mengkonfigurasi semua peralatan jaringan (tambahkan ke sistem pemantauan, konfigurasikan Username / password / snmpv3username / password tambahan). Ada akses ketika Anda pergi ke sakelar Core, dari situ buka SSH ke peralatan lain. Mengapa Anda tidak dapat menggunakan Ansible. - Karena kita mengalami batas pada jumlah sesi simultan yang diizinkan pada peralatan jaringan (baris vty 0 4, antarmuka pengguna vty 0 4) (pertanyaan lain adalah bagaimana memulai peralatan yang berbeda dalam Kemungkinan dengan SSH hop pertama yang sama).

Skrip mengurangi waktu selama operasi yang panjang - misalnya, menyalin file melalui FTP. Setelah salinan selesai, skrip segera mulai berfungsi. Seseorang perlu melihat akhir dari penyalinan, kemudian menyadari akhir dari penyalinan, kemudian masukkan perintah yang sesuai. Script melakukan ini lebih cepat secara objektif.

Skrip berlaku jika tidak mungkin menggunakan cara pengiriman data massal: Konsol. Atau ketika beberapa data untuk peralatan unik: nama host, alamat ip manajemen. Atau ketika menulis sebuah program dan melakukan debugging ke program itu lebih sulit daripada menambahkan data yang diterima dari peralatan saat skrip berjalan. - Contoh dengan skrip untuk menentukan rute, ketika setiap peralatan memiliki alamat IP penyedia Internet sendiri. (Rekan-rekan saya menulis skrip seperti itu - ketika DMVPN berbicara untuk 3 ratusan. Itu perlu untuk mengubah pengaturan DMVPN).

Studi kasus: Pengaturan awal pada sakelar baru melalui port konsol:

A. Saya memasukkan kabel konsol ke perangkat.
B. Meluncurkan script
B. Menunggu script untuk menyelesaikan
G. Drew kabel konsol ke perangkat berikutnya.
D. Jika saklar bukan yang terakhir, lanjutkan ke langkah B.

Total berdasarkan hasil skrip:

  • Peralatan memiliki kata sandi awal.
  • Nama pengguna dimasukkan
  • memasukkan alamat IP unik untuk perangkat.

PS Saya harus mengulangi operasi. Karena secara default ssh tidak dikonfigurasi / dimatikan. (Ya, ini adalah kesalahanku.)

Sumber yang digunakan.


1. Tentang membuat skrip
2. Contoh skrip

Lampiran 1: Contoh skrip.



Contoh skrip panjang, dengan dua permintaan: Nama host dan alamat IP. Itu dibuat untuk peralatan presetting melalui konsol (9600 baud). Dan juga untuk mempersiapkan koneksi peralatan ke jaringan.

# $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("admin\r")
	crt.Screen.WaitForString("Password:")
	crt.Screen.Send("Password\r")
	crt.Screen.Send("sys\r")
	crt.Screen.WaitForString("]")
	crt.Screen.Send("interface Vlanif 1\r")
	crt.Screen.WaitForString("Vlanif1]")
	crt.Screen.Send("undo ip address\r")
	crt.Screen.Send("shutdown\r")
	crt.Screen.Send("vlan 100\r")
	crt.Screen.Send(" description description1\r")
	crt.Screen.Send(" name description1\r")
	crt.Screen.Send("vlan 110\r")
	crt.Screen.Send(" description description2\r")
	crt.Screen.Send(" name description2\r")
	crt.Screen.Send("vlan 120\r")
	crt.Screen.Send(" description description3\r")
	crt.Screen.Send(" name description3\r")
	crt.Screen.Send("vlan 130\r")
	crt.Screen.Send(" description description4\r")
	crt.Screen.Send(" name description4\r")
	crt.Screen.Send("vlan 140\r")
	crt.Screen.Send(" description description5\r")
	crt.Screen.Send(" name description5\r")
	crt.Screen.Send("vlan 150\r")
	crt.Screen.Send(" description description6\r")
	crt.Screen.Send(" name description6\r")
	crt.Screen.Send("vlan 160\r")
	crt.Screen.Send(" description description7\r")
	crt.Screen.Send(" name description7\r")
	crt.Screen.Send("vlan 170\r")
	crt.Screen.Send(" description description8\r")
	crt.Screen.Send(" name description8\r")               
	crt.Screen.Send("vlan 180\r")
	crt.Screen.Send(" description description9\r")
	crt.Screen.Send(" name description9\r")
	crt.Screen.Send("vlan 200\r")
	crt.Screen.Send(" description description10\r")
	crt.Screen.Send(" name description10\r")
	crt.Screen.Send("vlan 300\r")
	crt.Screen.Send(" description description11\r")
	crt.Screen.Send(" name description11\r")
	crt.Screen.Send("quit\r")
	crt.Screen.WaitForString("]")
	crt.Screen.Send("stp region-configuration\r")
	crt.Screen.Send("region-name desc\r")
	crt.Screen.Send("active region-configuration\r")
	crt.Screen.WaitForString("mst-region]")
	crt.Screen.Send("quit\r")
	crt.Screen.Send("stp instance 0 priority 57344\r")
	crt.Screen.WaitForString("]")
	crt.Screen.Send("interface range GigabitEthernet 0/0/1 to GigabitEthernet 0/0/42\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("description Users\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port link-type hybrid\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("voice-vlan 100 enable\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("voice-vlan legacy enable\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port hybrid pvid vlan 120\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port hybrid tagged vlan 100\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port hybrid untagged vlan 120\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("stp edged-port enable\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("trust 8021p\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control broadcast min-rate 1000 max-rate 1500\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control multicast min-rate 1000 max-rate 1500\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control action block\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control enable trap\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("quit\r")
	crt.Screen.Send("interface range GigabitEthernet 0/0/43 to GigabitEthernet 0/0/48\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("description Printers\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port link-type access\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port default vlan 130\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("stp edged-port enable\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("trust 8021p\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control broadcast min-rate 1000 max-rate 1500\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control multicast min-rate 1000 max-rate 1500\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control action block\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control enable trap\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("quit\r")
	crt.Screen.Send("interface range XGigabitEthernet 0/0/1 to XGigabitEthernet 0/0/2\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("description uplink\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port link-type trunk\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port trunk allow-pass vlan 100 110 120 130 140 150 160 170 180 200\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("port trunk allow-pass vlan 300\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control broadcast min-rate 1000 max-rate 1500\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control multicast min-rate 1000 max-rate 1500\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control action block\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("storm-control enable trap\r")
	crt.Screen.WaitForString("port-group]")
	crt.Screen.Send("quit\r")
	crt.Screen.Send("ntp-service unicast-server 10.10.10.4\r")
	crt.Screen.Send("ntp-service unicast-server 10.10.10.2\r")
	crt.Screen.Send("ntp-service unicast-server 10.10.10.134\r")
	crt.Screen.Send("ip route-static 0.0.0.0 0.0.0.0 10.10.10.254\r")
	crt.Screen.Send("interface Vlanif 200\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]")
	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(" 24\r")
	crt.Screen.Send("quit\r")
	crt.Screen.Send("sysname ")
	crt.Screen.Send(hostnamestr)
	crt.Screen.Send("\r")
	crt.Screen.WaitForString("]")
	crt.Screen.Synchronous = False
main()

Naskah seperti itu biasanya tidak diperlukan, tetapi jumlah peralatannya adalah 15. Diizinkan untuk mempercepat pengaturan. Konfigurasi perangkat keras lebih jauh lebih cepat dengan jendela Perintah SecureCRT.

Penyiapan akun untuk ssh.


Contoh lain. Atur juga melalui konsol.

# $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("admin\r")
	crt.Screen.WaitForString("Password:")
	crt.Screen.Send("Password\r")
	crt.Screen.WaitForString(">")
	crt.Screen.Send("sys\r")
	crt.Screen.Send("stelnet server enable\r")
	crt.Screen.Send("aaa\r")
	crt.Screen.Send("local-user admin service-type terminal ftp http ssh\r")
	crt.Screen.Send("quit\r")
	crt.Screen.Send("user-interface vty 0 4\r")
	crt.Screen.Send("authentication-mode aaa\r")
	crt.Screen.Send("quit\r")
	crt.Screen.Send("quit\r")
	crt.Screen.Synchronous = False
main()


Tentang SecureCRT:
: 99$ ( SecureCRT )

1 , ( ), .

Mac OS X Windows.

( )
Command Window
Serial/Telnet/SSH1/SSH2/Shell

All Articles