• ベストアンサー

telnetの自動シェルバッチを作成したい

UNIXは不得意のため、とても困っています。 是非、アドバイスをお願いします。m(_S_;)m えっと。windowsでいえば、ブラウザにURLを設定するようなことを UNIX上で、telnetを使って自動バッチを作成したいと思っています。 HTTP要求のURL: http:xx.xx.xx.xx:7001/TEST/test.srv?MODE=0 自分で書いてみたシェル ------------------------------------------------- sleep 2; echo ${USER_ID} sleep 1 echo ${PASSWORD} sleep 1 echo "GET /TEST/test.srv?MODE=0" sleep 1 echo "exit" | telnet ${SERVER_IP} ${WEB_POOT} ------------------------------------------------- 下記では、「ファイルもディレクトリもありません。」の エラーが出てしますます。。 でもブラウザより上記のURLを入れて実行するぶんには 正常にhtmlを返してくれます。(バッチではhtmlを返さなくても可) お手数をおかけしますが、どなたかもしアドバイス等が 御座いましたら、どうか宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • namachu
  • ベストアンサー率44% (8/18)
回答No.2

http にアクセスするのに USER_ID や PASSWORD は要らないです。 もし Basic 認証なら、こんな感じで与える必要があります。 #!/bin/sh ( sleep 1; echo "GET /TEST/test.srv?MODE=0 HTTP/1.0" sleep 1; echo "Authorization: Basic ??????????" sleep 1; echo "" ) | telnet xxx.xxx.xxx.xxx 80 ??????????は USER_ID:PASSWORD を BASE64 したものです。 ただ、telnet でやるより wget とか w3m あたりをインストールして使ったほうが簡単だと思いますが

nsakurako
質問者

お礼

ありがとうございました。 教えて頂いた方法でも試してみたのですが、今のところダメでした。。 とっほっほ。。。 う~ん。。手動でtelnetとGETを走らせれば上手くはいくのですが。。 バッチだと。「Connection closed by foreign host.」。。 ただ、とても不思議なのは、手動でも何度かは、バッチと同じエラーが出ます。。。 もう少し調べてみようと思います。 本当にありがとうございました。

その他の回答 (2)

  • namachu
  • ベストアンサー率44% (8/18)
回答No.3

"Connection closed by foreign host." は、telnet が終了したよってメッセージですから問題ありませんよ。

nsakurako
質問者

お礼

返事が遅くなって申し訳ありませんでした。 telnetの終了メッセージなのですね。 ありがとうございました。

  • honiyon
  • ベストアンサー率37% (331/872)
回答No.1

こんにちは、honiyonです。  まさにそれを行うためのスクリプトが存在します。  ・・・といっても、もう何年も前の記憶なので名前を失念してしまいましたが(^^;  当時 www.linux.or.jpから追跡して発見しました。  参考になれば幸いです(..

nsakurako
質問者

お礼

早速の回答をありがとうございました。 スクリプトが存在するのですね。 是非、探してみます。 ただ、あまりフリーソフトを使えないので 出来たら、自分で作成したシェルが実行できると嬉しいです。 ありがとうございました。

関連するQ&A