Telnet

説明

リモート Telnet セッションを自動化するタスクです。このタスクでは、ネストされた <read> を使用して文字列の待機を示し、<write> タグを使用して送信するテキストを指定します。

ユーザー ID とパスワードを指定すると、システムは待機すべき一般的な Unix プロンプトがあると想定します。この動作は簡単に上書きできます。

注: このタスクは、Apache Ant ディストリビューションには含まれていない外部ライブラリに依存しています。詳細については、ライブラリの依存関係を参照してください。

パラメータ

属性 必須
userid Telnet サーバーで使用するログイン ID。 password が指定されている場合のみ
password Telnet サーバーで使用するログイン パスワード。 userid が指定されている場合のみ
server リモート Telnet サーバーのアドレス。 はい
port リモート Telnet サーバーのポート番号。 いいえ。既定値は 23 です。
initialCR 接続後に CR を送信する場合は yes いいえ。既定値は no です。
timeout 応答を待機する既定のタイムアウトを設定します。秒単位で指定します。 いいえ。既定値はタイムアウトなし

ネストされた要素として指定されたパラメータ

サーバーに送信するコマンドと、待機する応答は、ネストされた要素として記述されます。

read

待機する文字列をこの要素のテキスト子として宣言します。この要素は timeout 属性をサポートしており、タスク全体に指定されたタイムアウトを上書きします。また、string 属性もあり、文字列をテキスト要素として指定する代替手段として使用できます。

常に、開いている <read> 要素と閉じている <read> 要素を宣言して、接続の準備が整う前にステートメントが送信されないことと、最後のコマンドが完了する前に接続が切断されないことを確認します。

write

サーバーに送信するテキストを示します。echo ブール型の属性は、文字列がローカルログに出力されるかどうかを制御します。これは既定では true です。

サーバーに接続してコマンドを実行する単純な例です。ユーザー ID のプロンプトが ogin: で、パスワードのプロンプトが assword: であると想定しています。

<telnet userid="bob" password="badpass" server="localhost">
   <read>/home/bob</read>
   <write>ls</write>
   <read string="/home/bob"/>
</telnet>

このタスクを書き換えると次のようになります:

<telnet server="localhost">
   <read>ogin:</read>
   <write>bob</write>
   <read>assword:</read>
   <write>badpass</write>
   <read>/home/bob</read>
   <write>ls</write>
   <read>/home/bob</read>
</telnet>

タイムアウトは <telnet> レベルまたは <read> レベルで指定できます。これは接続して表示されない sleep コマンドを実行し、10 秒待ってから終了します。

<telnet userid="bob" password="badpass" server="localhost" timeout="20">
   <read>/home/bob</read>
   <write echo="false">sleep 15</write>
   <read timeout="10">/home/bob</read>
</telnet>

このタスクは他のポートでも使用できます:

<telnet port="80" server="localhost" timeout="20">
   <read/>
   <write>GET / http/0.9</write>
   <write/>
   <read timeout="10">&lt;/HTML&gt;</read>
</telnet>

このタスクを Windows NT Telnet サービスに対して使用するには、NTLM ネゴシエート認証ではなく、クラシック認証を使用するようにサービスを構成する必要があります。これは Telnet Server Admin アプリで実行できます。レジストリの設定を表示/変更 を選択し、NTLM を選択してから、NTLM の値を 1 に設定します。