サーバの動作確認をしたり、応答内容を直接見たいときは目的のポートに対して telnet コマンド使うことがある。私はよく HTTP の応答ヘッダを確認するのに使う。動作確認とはいえ、同じサーバ に何度も同じようなリクエストを打つこともあったりすると面倒。しかも、最初の GET で始まる 1 行だけならよいが、その他の行を追加したりしているとタイムアウトになることもある。あわてて打つとタイプミス…。
ファイルにコマンドを書いておき、それを実行すれば楽になるだろう。まずは以下のようなスクリプトを試した。
#!/bin/sh telnet 192.168.1.109 80 <<EOM GET / HTTP/1.0 Host: home.kendomo.net EOM
しかし、これではうまくいかない。 telnet のプロンプトが返ってくるまでに GET コマンドを送ってしまうのだろうか。よくわからない。続いて expect を試す。以下のような感じだ。
#!/usr/bin/expect -f spawn telnet 192.168.1.109 80 expect "Escape character is '^]'.\r" send "GET / HTTP/1.0\r" send "Host: home.kendomo.net\r\r" expect eof
これならうまくいった。
- 参考
- http://www.linux.or.jp/JM/html/expect/man1/expect.1.html
- http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/~poffice/mail/linux-users/64531
- Posted at 2004-03-04 00:44:33
- pc
このエントリへのトラックバック
spamが増えたためトラックバック機能は停止中です。
このエントリへのコメント
spamが増えたためコメント機能は停止中です。