Сценарий оболочки для команд telnet и run
вопрос
Я создал сценарий оболочки, который может автоматически подключаться к telnet, запускать команды на другом компьютере и завершать сеанс telnet без какого-либо вмешательства пользователя; пользователь просто запускает скрипт или вызывает его из другого скрипта.
Но вам нужно установить пакеты EXPECT и TCL в вашей системе Unix.
Скрипт содержит следующие инструкции:
#! / usr / local / bin / Ожидаемый -f #### / usr / local / bin / wait - это каталог, в котором был установлен ожидаемый
log_user 0 #### эта команда используется, чтобы скрыть диалог между сценарием и другим компьютером
установить адрес [lindex $ argv 0] ### назначить первый переданный параметр при вызове сценария для $ address
установить имя пользователя [lindex $ argv 1] ### назначить второй переданный параметр при вызове сценария $ username
установить пароль [lindex $ argv 2] ### назначить 3-й переданный параметр при вызове сценария для $ password
spawn telnet $ {address} ### запустить сеанс telnet на машине с IP = $ address
### начать разговор с машиной:
ожидать "логин:"
отправить - "$ {имя пользователя} \ r"
ожидать "Пароль:"
отправить - "$ {пароль} \ r"
ожидать "$"
отправить - "#! / bin / ksh \ r" ### объявить используемую оболочку (необязательно)
ожидать "$"
отправить - "### введите ей любую команду, которую вы хотите выполнить"
ожидать "$"
send - "exit \ r" ### завершить сеанс telnet и выйти из скрипта
Чтобы выполнить этот скрипт, я набрал:
$ wait_script "address" "username" "password" ### имя сценария "wait_script"
Но прежде чем вызывать ожидаемый скрипт, вы должны сделать ожидаемый скрипт исполняемым, и это можно сделать, набрав:
$ chmod + x wait_script
Решение
Попробуй это:
#! / usr / local / bin / ожидаем порождения telnet ожидаем "логин:" отправить "\ n" ожидаем "Пароль:" отправить "\ n" отправить "bash \ n" отправить "cd / opt \ n" отправить "ls - ltr \ n "? (если вы не даете \ n, он будет ждать вашего ответа или вам придется вводить ввод вручную). взаимодействовать
Как выполнить команду «ожидаемо»
Пример: ожидаем -f .expect
Заметка
Спасибо ZooZoo за этот совет на форуме.