6

シェル スクリプト内で telnet を実行し、リモート サーバーでコマンドを実行するにはどうすればよいですか?

セキュリティ上の理由から、solaris マシンに期待をインストールしていません。net::telnetまた、perlモジュールがインストールされていません。

では、expect と perl を使用せずに、どうすればよいのでしょうか?

以下のことを試しましたが、うまくいきません。

#!/usr/bin/sh
telnet 172.16.69.116 <<!
user
password
ls
exit
!

私がそれを実行すると、これは私が得ているものです:

> cat tel.sh
telnet 172.16.69.116 <<EOF
xxxxxx
xxxxxxxxx
ls
exit
EOF
> tel.sh
Trying 172.16.69.116...
Connected to 172.16.69.116.
Escape character is '^]'.
Connection to 172.16.69.116 closed by foreign host.
> 
4

2 に答える 2

12

コマンドの一部が破棄される可能性があります。通常のスクリプト コンストラクトを使用してより細かい制御を実現し、必要なコマンドをパイプ経由でecho. コマンドのリストをグループ化して、1 つの「セッション」を作成します。

{
sleep 5
echo user
sleep 3
echo password
sleep 3
echo ls
sleep 5
echo exit
} | telnet 172.16.65.209
于 2012-09-04T13:11:57.133 に答える
-1

私は同じ問題を抱えていました...しかし、少なくとも私の環境では、宛先サーバーのSSL証明書が何らかの形で破損していることが判明し、サーバーチームが問題を処理しました.

今、私がやろうとしているのは、スクリプトで上記とまったく同じことを実行する方法を見つけ出すことです。ただし、上記とまったく同じシナリオをファイルにダンプしてから、実際に接続するサーバーで、エスケープ文字 (^]) を提供して次のサーバーに進むようにします。

于 2017-07-20T21:54:04.037 に答える