Telnet およびシェル スクリプト。スクリプトの実行中にセッションを開いたままにしてデータを送信します。

Telnet およびシェル スクリプト。スクリプトの実行中にセッションを開いたままにしてデータを送信します。

bash から telnet クライアントを使用して、TCP サーバーに 2 つ以上のメッセージを送信したいと考えています。これは、スクリプトの実行中にセッションを開いたままにする必要があることを意味します。

たとえば、スクリプトのフローは次のようになります。

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"

関連情報