2

telnet 接続を開き、いくつかのコマンドを実行して、接続を終了しようとしています。約1000回実行する必要があります。スクリプトは、いくつかの試行回数 [たとえば、約 23 - 25] で正常に実行されます。次に、次のエラーが表示されます。

「perlscript.pl 行 23 で eof を読み取ったパターン マッチ」

23行目はコードに対応しています

$tn->waitfor('/Password: /i').

このエラーの後、telnet 接続を手動で開こうとすると、次のエラーが表示されます。

サービスとキューがいっぱいです。後で戻ってきてください

「サービスとキューがいっぱいです」というエラーのためにtelnet接続が終了しているため、最初のエラー「パターン一致読み取りeof」が発生したと思います。

問題をさらにデバッグしようとしていたところ、ログを確認したところ、次のエラーが発生しました。

2012 08 08 10:27:46 EDT: Exception occured:
java.lang.NullPointerException
at dtw.telnetd.net.Connection.close(Connection.java)
at dtw.telnetd.net.ConnectionManager.cleanupBroken(ConnectionManager.java)
at dtw.telnetd.net.ConnectionManager.run(ConnectionManager.java)

この例外の原因について何か考えはありますか?

4

1 に答える 1

0
#!/usr/bin/perl

($user,$pass)=@ARGV;
use Data::Dumper;
%resp=();
use Net::Telnet ();
for (0..100) {
$tn=new Net::Telnet(Timeout=>10, prompt=>'/jamie\@jenks:~\$/');
$tn->open("jenks");
$tn->login($user,$pass);
@lines=$tn->cmd("uname -a");
$resp{$lines[0]}++;
$tn->prompt("//");
@bye=$tn->cmd("logout");
}

print Dumper(\%resp);

これは私にとってはうまくいくようで、ログアウトコマンドが発行される前にプロンプ​​トをヌル文字列に設定します

于 2013-04-01T20:35:55.893 に答える