Shell скрипт за командите telnet и run

Разработен е скрипт, който има характеристиките на автоматичен telnet и изпълнява команди за изпълнение на други машини, като по този начин приключва сесията на telnet без никакво взаимодействие от потребителя. Потребителят просто трябва да изпълни скрипта или да извика функцията от друг скрипт. Това е широко приложимо за Linux, но за системата UNIX е необходимо предварително инсталиране на пакети TCL и INSTALL. Има отделна директория за инсталиране на командата Expect. Специфични команди се използват за скриване на разговора между другата машина и скрипта в Linux. Адресът, потребителското име и паролата се задават, докато извиквате скрипта. IP адресът се изисква за деклариране на обвивката, след което командата run, която ще се изпълни, се изпраща, маркирайки края на telnet сесията.

Проблем

Направих шел скрипт, който може да телнет автоматично и да изпълнява команди на другата машина и да приключи сесията на telnet без никакво взаимодействие от потребителя; Потребителят просто изпълнява скрипта или го извиква от друг скрипт.

Но трябва да инсталирате EXPECT и TCL пакети на вашата Unix система.

Скриптът съдържа следните инструкции:

#! / usr / local / bin / expect -f #### / usr / local / bin / expect е директорията, където е инсталирано очакваното

log_user 0 #### Тази команда се използва за скриване на разговора между скрипта и другата машина

set address [lindex $ argv 0] ### присвоява първия преминал параметър, докато извиква скрипта на $ address

задайте потребителско име [lindex $ argv 1] ### задайте втория преминал параметър, докато извиквате скрипта към $ username

задайте парола [lindex $ argv 2] ​​### задайте 3-тия преминал параметър, докато извиквате скрипта към $ password

spawn telnet $ {address} ### започнете telnet сесията с машината с IP = $ address

### започнете разговор с устройството:

очаквайте „вход:“

send - "$ {username}" \ t

очаквайте „Парола:“

send - "$ {password}" \ t

очаквам "$"

send - "#! / bin / ksh" ### декларира черупката, която ще се използва (по избор)

очаквам "$"

изпрати - "### напишете всяка команда, която искате да изпълните"

очаквам "$"

send - "exit" ### приключва сесията на telnet и излиза от скрипта

За да изпълните този скрипт, написах:

$ expect_script "address" "username" "password" ### името на скрипта е "expect_script"

Но преди да извикате скрипта на очакваното, трябва да направите изпълнимия скрипт на очакваното, а това може да се направи, като напишете:

$ chmod + x expect_script

Решение

Опитайте тази:

 #! / usr / local / bin / expect spawn telnet очаквайте "login:" send "очаквам" Парола: "send" n "send" bash "изпрати" cd / opt n "изпрати" ls - ltr \ t (ако не давате n, то ще изчака отговора ви или ще трябва да въведете ръчно). взаимодействат 

Как да изпълним командата "очаквам", очаквайте -f

Пример: очаквайте -f .expect

Забележка

Благодарение на ZooZoo за този съвет на форума.

Предишна Статия Следваща Статия

Топ Съвети