Redhat6.2J(Kernel2.2.14-5.0)を使っています。
perl-5.00503-12です。
Net::Telnetを使ったtelnetで
timed-out waiting for password prompt at ./test3.pl line 13
というエラーメッセージが出てtelnet出来ません。
過去ログ
http://www.debian.or.jp/Lists-Archives/debian-users/200001/msg00335.html
やドキュメント類などを調べて色々やってみたのですが
うまく行きません。
どうやらこの現象は不安定らしく、マシンによって(?)うまくいったり、いかなかっ
たり
するようです。(ホンマかいな)
過去ログの人は Telnet.pm に直接 sleep をかませて対処したようですが
#しかも sleep 5 はNGで sleep 10 はOKとか。
私の環境ではそれでもダメでした。
皆さんの環境ではどうでしょう?何か情報等いただけると助かります。
以下にスクリプトを掲載します。
--------------------- ここから -------------------------------------
#!/usr/bin/perl
use Net::Telnet;
$user = "hoge"; # ←ここと...
$passwd = "xxxx"; # ←ここは適宜、直してね。
$obj = new Net::Telnet( Timeout => 10,
Input_log => "/tmp/telnetinput.log",
Dump_log => "/tmp/telnetdump.log",
Output_log => "/tmp/telnetoutput.log");
$obj->open("localhost");
$obj->login(
Name => $user,
Password => $passwd,
Timeout => 10);
$obj->close;
print "Done\n";
--------------------- ここまで -------------------------------------
<9dr5rf$jc0$1...@nn-os105.ocn.ad.jp>の記事において
han...@clubaa.comさんは書きました。
>> Net::Telnetを使ったtelnetで
>> timed-out waiting for password prompt at ./test3.pl line 13
>> というエラーメッセージが出てtelnet出来ません。
>> 私の環境ではそれでもダメでした。
>> 皆さんの環境ではどうでしょう?何か情報等いただけると助かります。
>> 以下にスクリプトを掲載します。
>> --------------------- ここから -------------------------------------
>> #!/usr/bin/perl
>> use Net::Telnet;
>>
>> $user = "hoge"; # ←ここと...
>> $passwd = "xxxx"; # ←ここは適宜、直してね。
>>
>> $obj = new Net::Telnet( Timeout => 10,
Timeout を大きくするとタイムアウトしなくなります。
自分で手動telnetして、相手サーバーの応答時間を調べてはいかがでしょうか。
>> Input_log => "/tmp/telnetinput.log",
>> Dump_log => "/tmp/telnetdump.log",
>> Output_log => "/tmp/telnetoutput.log");
>>
>> $obj->open("localhost");
>> $obj->login(
>> Name => $user,
>> Password => $passwd,
>> Timeout => 10);
>> $obj->close;
>> print "Done\n";
>> --------------------- ここまで -------------------------------------
--------------------------------------------------------
Ken Harada = 原田 健 Hayama, Japan (=葉山町)
http://www.hayama.net/~kenhrd/
"hanaji" <han...@clubaa.com> wrote in message
news:9dr5rf$jc0$1...@nn-os105.ocn.ad.jp...
> hanajiです。
>
> Redhat6.2J(Kernel2.2.14-5.0)を使っています。
> perl-5.00503-12です。
>
> Net::Telnetを使ったtelnetで
> timed-out waiting for password prompt at ./test3.pl line 13
> というエラーメッセージが出てtelnet出来ません。
> 過去ログ
> http://www.debian.or.jp/Lists-Archives/debian-users/200001/msg00335.html
> やドキュメント類などを調べて色々やってみたのですが
> うまく行きません。
>
> どうやらこの現象は不安定らしく、マシンによって(?)うまくいったり、いかな
かっ
> たり
> するようです。(ホンマかいな)
> 過去ログの人は Telnet.pm に直接 sleep をかませて対処したようですが
> #しかも sleep 5 はNGで sleep 10 はOKとか。
>
> 私の環境ではそれでもダメでした。
> 皆さんの環境ではどうでしょう?何か情報等いただけると助かります。
(以下略)
とりあえず私の環境では問題ありませんでした。
TurboLinux WORKSTATION 6.0 日本語版+Perl 5.005_03
Dumpログファイル(/tmp/telnetdump.log)では、どこまでいっているのでしょう?
デフォルトでは以下のようなプロンプトを待っているはずなんですけど。
<引用>
Password prompts must match the case insensitive pattern:
/password[: ]*$/i
</引用>
これが違うとか?
==============================================
川合 孝典 (Hippo2000)
kwi...@cpan.org GCD0...@nifty.ne.jp
http://member.nifty.ne.jp/hippo2000
http://www.hippo2000.net/
DBI日本語メーリングリスト管理人、 Kansai.pm所属
==============================================
"Kawai,Takanori" <GCD0...@nifty.ne.jp> wrote in message
news:9ds9u4$hos$1...@nw041.infoweb.ne.jp...
> Dumpログファイル(/tmp/telnetdump.log)では、どこまでいっているのでしょう
?
下記にそのまま貼り付けますね。
----------------- ここから -------------------------------
< 0x00000: ff fd 18 ff fd 20 ff fd 23 ff fd 27 �. � �# �'
> 0x00000: ff fc 18 ff fc 20 ff fc 23 ff fc 27 ��� ��� ���ぢ ���
�因旭旭虻�聿�聰�鯵�聿��聹�葦�聿�聹��掩�聿�聰�圧��聿�聹�憶
��� �. �. ��� �!
> 0x00000: ff fd 03 ff fc 01 ff fc 1f ff fe 05 ff fc 21
�. ��� ��� �. ���
�因旭旭虻�聿�聰�葦�遺��衣�飢�教�挟��屋�憾�怯�郡��屋�眼�狭�九�� ����繖�悲�也��因旭葦虻�卦�係�屋�群��教�吟�教�怯��軍�教�屋�涯��峨�害�屋�恩����鱚跂癈�峡���因旭芦虻�求�倶�倶�郡��温�遺�衣�癌��教�群�九�教��吟�屋�害�峨��晨阡��纈鈬�荻
�因旭鯵虻�害�峨�咳�慨��俄�概�峨�外��屋�倶�九�屋��怯�九�屋�狭��荻唄Ⅰ��闔
瘤���因旭梓虻�概�蓋�涯�遺��衣�������������������������������������妓峡�
�因旭旭虻�聿�聹�葦�������������������������������������������� �.
< 0x00000: 6c 6f 67 69 6e 3a 20 login:
> 0x00000: 67 61 6b 75 73 65 69 0d 0a gakusei..
< 0x00000: 67 61 6b 75 73 65 69 0d 0a gakusei..
----------------- ここまで -------------------------------
> デフォルトでは以下のようなプロンプトを待っているはずなんですけど。
> <引用>
> Password prompts must match the case insensitive pattern:
>
> /password[: ]*$/i
> </引用>
> これが違うとか?
うーん。これはしつこいぐらい調べたつもりなのですが・・・
以下にTelnetのシーケンスを書きます。
----------------- ここから -------------------------------
[root@pclinux /tmp]# telnet localhost
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
Red Hat Linux release 6.2 (Zoot)
Kernel 2.2.14-5.0 on an i586
login: gakusei
Password:
Last login: Wed May 16 09:25:22 from localhost.localdomain
[gakusei@pclinux gakusei]$
----------------- ここまで -------------------------------
"Ken Harada" <ken...@hayama.net> wrote in message
news:9drioi$8ig$1...@diamond.hayama.net...
> >> $obj = new Net::Telnet( Timeout => 10,
>
> Timeout を大きくするとタイムアウトしなくなります。
> 自分で手動telnetして、相手サーバーの応答時間を調べてはいかがでしょうか。
>
相手サーバーは常に localhost です。
Timeout値を100にしてみると以下のメッセージとなりました。
read eof waiting for password prompt: Login timed out after 60 seconds at
./test3.pl line 13
パスワードのプロンプトが出力される前にセッションが切れているような気が
します。
現状ではsleepを入れるしかないようです。↓
http://groups.google.com/groups?q=login+expect+redhat&num=100&hl=en&lr=&grou
p=comp.lang.perl.modules&safe=off&rnum=1&ic=1&selm=8290d6jxex.fsf%40shell2.s
hore.net
お騒がせしました。
"hanaji" <han...@clubaa.com> wrote in message
news:9dr5rf$jc0$1...@nn-os105.ocn.ad.jp...
Telnet.pmに直接sleepの話ですが。
sleep(10)ではなくてsleep(1)のまちがいなのでは?
私の環境でも同じ事が起こりましたよ。最初は。
しかも失敗するのは同じLAN内にあるものだけです。
外のサーバーへは以下のスクリプトでも成功するはずです。
私はsleep(1)で問題なく解決でした。
"hanaji" <han...@clubaa.com> wrote in message
news:9dr5rf$jc0$1...@nn-os105.ocn.ad.jp...