Perl: 2004年11月アーカイブ

Net::Telnetモジュールを使って会社のサーバに仕事をさせるスクリプトを書いていたら、
以前ログインできてたのに、サーバリプレース以後ログインできなくなった。
結構ハマってしまって放置していたのだが、今日ようやくFixできてスッキリ。
Net::Telnetでの通信のやりとりは、dump_log()メソッドでファイルに記録できるのね。

  # ホストに接続する
  $telnet->open( $hostname );
  
  # loginと出力されたらユーザ名を送信
  $telnet->waitfor('/login/i');
  $telnet->print( $username );
  
  # passwordと出力されたらパスワードを送信
  $telnet->waitfor('/password/i');
  $telnet->print( $password );
  
  # ターミナルタイプ設定
  $telnet->waitfor('/terminal type? /');
  $telnet->print( 'vt100' );
  
  # プロンプトが出力されるまで待つ
  $telnet->waitfor( $prompt );

上記太字部分がミソで、こいつを指定してやらないと、ログインプロンプトが返ってこない環境があるらしい。
これを設定してやらないと、

  unknown terminal type network
  Terminal type? 

とか言われるので、.bash_profileに'export TERM=vt100'とか書いてあげたりしないといけない(そこで入力待ち状態なのでプロンプトを待ってるwaitfor()がタイムアウトする)。

ようやくFixしたので、これを使ってリリース作業の自動化とかできたら楽だな~とか妄想中。(笑

2009年11月

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

ウェブページ

Profile

name: Michiya Honda
nick: PIA
birth: 21-Nov-1975
e-mail: pia at this domain
SNS: mixi, nowa
起業・独立サポート「katana」

このアーカイブについて

このページには、2004年11月以降に書かれたブログ記事のうちPerlカテゴリに属しているものが含まれています。

前のアーカイブはPerl: 2004年4月です。

次のアーカイブはPerl: 2004年12月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.1