Скрипты Telnet и оболочки. Поддержание сеанса открытым и отправка данных во время выполнения скрипта.

Скрипты Telnet и оболочки. Поддержание сеанса открытым и отправка данных во время выполнения скрипта.

Я хочу отправить два или более сообщений на TCP-сервер с помощью клиента telnet из bash. Это подразумевает, что я должен поддерживать сессию открытой, пока мой скрипт находится в процессе выполнения.

Например, сценарий должен выглядеть следующим образом:

1) open telnet session
2) send 1st message
3) sleep 1 s
4) send 2nd message
5) close session

Каков наилучший способ добиться этого?

решение1

expectявляется лучшим инструментом для таких случаев использования.Здесьмой ответ на вопрос, похожий на ваш, на сайте Unix & Linux. Его можно просто адаптировать к вашему случаю:

#!/usr/bin/expect
spawn telnet 10.0.0.1
expect "ogin:"
send "myuser\r"
expect "assword:"
send "mypassword\r"
expect "#"
send "command1\r"
expect "#"
sleep 1
send "command2\r"
expect "#"
send "exit\r"

Связанный контент