Скрипт Shell для команд telnet і run

Розроблено сценарій оболонки, який має функції автоматичного telnet і виконує команди запуску для інших машин, тим самим завершуючи сеанс telnet без будь-якої взаємодії з користувачем. Користувачеві потрібно просто запустити скрипт оболонки або викликати функцію з іншого скрипта. Це широко застосовується для Linux, але для системи UNIX необхідно попередньо встановити пакети TCL і INSTALL. Існує окремий каталог для встановлення команди Expect. Конкретні команди використовуються для приховування розмови між іншою машиною і сценарію оболонки в Linux. Адреса, ім'я користувача та пароль призначаються під час виклику сценарію. IP-адреса необхідна для оголошення оболонки, після чого команда виконання, яка буде виконана, відправляється, позначаючи кінець сеансу telnet.

Проблема

Я зробив сценарій оболонки, який може автоматично telnet і виконувати команди на іншій машині і завершити сеанс telnet без будь-якої взаємодії з користувачем; користувач просто запускає скрипт або викликає його з іншого сценарію.

Але вам потрібно встановити пакети EXPECT і TCL на вашу систему Unix.

Сценарій містить такі інструкції:

#! / usr / local / bin / expect -f #### / usr / local / bin / expect - це каталог, де було встановлено очікування

log_user 0 #### Ця команда використовується для приховування розмови між скриптом і іншою машиною

set address [lindex $ argv 0] ### призначає перший переданий параметр під час виклику скрипта до $ address

set username [lindex $ argv 1] ### призначає другий переданий параметр під час виклику скрипта до $ username

set password [lindex $ argv 2] ​​### привласнюють третій пройдений параметр при виклику скрипта до $ password

spawn telnet $ {address} ### почати сеанс telnet для роботи з IP = $ address

### почати розмову з машиною:

очікувати "вхід:"

send - "$ {username}" \ t

очікуйте "Пароль:"

send - "$ {password}"

очікувати "$"

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

очікувати "$"

send - "### введіть будь-яку команду, яку ви хочете виконати"

очікувати "$"

send - "exit" ### завершити сеанс telnet і вийти з сценарію

Щоб виконати цей сценарій, я ввів:

$ expect_script "address" "username" "password" ### назва сценарію - "expect_script"

Але перш ніж викликати сценарій очікування, слід виконати виконуваний сценарій очікування, і це можна зробити, ввівши:

$ chmod + x expect_script

Рішення

Спробуйте це:

 #! / usr / local / bin / expect spawn telnet очікують "вхід:" відправити "n" очікувати "пароль:" відправити "\ t ltr n "? (якщо ви не даєте n, то він буде чекати вашого відповіді або вам потрібно ввести ввід вручну). взаємодіяти 

Як виконати команду "expect" очікують -f

Приклад: очікуйте -f .expect

Примітка

Завдяки ZooZoo за цей відгук на форумі.

Попередня Стаття Наступна Стаття

Кращі Поради