問題タブ [expect.pm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
734 参照

perl - Perl Expect モジュールのリモート ホストで $self->send() を介して実行されたコマンドの出力を取得します

Perl の Expect モジュールを使用して、インタラクティブなアクティビティを実行し、リモート マシンでコマンドを実行しています。これについてあなたの助けを求める

これが私が使用した手順です

ユーザーを別のアカウントに切り替えます。ログインするためのパスワードを送信します。新しいユーザーのシェルを取得したら、ssh コマンドを実行してリモート マシンに接続します。

次に、そのリモート マシンでコマンドを実行し、その応答を取得します。リモートマシンでコマンドを実行できます。端末にも出力が表示されます。しかし、それを変数に取り込んで値と比較することはできません。

$COMMAND1経由でリモート マシンで実行した結果を取得するにはどうすればよい$self->send("$COMMAND1\n")ですか?

0 投票する
1 に答える
486 参照

perl - Perl: lib Net::SSH::Expect の Bareword "exp_continue"

私はPerlが初めてです。ライブラリをダウンロードしNet::SSH::Expect v.1.09て、サンプルで使用してみました。

スクリプトを実行しようとすると、次のメッセージが表示されます。

/hom/perl/Net/SSH/Expect.pm 行 203 で「strict subs」が使用されている間は、裸の「exp_continue」は許可されません。

0 投票する
1 に答える
110 参照

perl - 構成の一部を表示する (--More)

スイッチに接続するスクリプトを作成しましたが、問題は、それを表示すると一部しか表示されず、残りがサイズ (--More) として表示されることです。すべての構成を表示するにはどうすればよいですか。ありがとうございます

私はExpectモジュールでこれを試しました:

このエラーが発生します:

/usr/local/share/perl5/Expect.pm 行 202 の非参照値を bless できません (#1) (F) ハード参照のみ bless できます。これが、Perl がオブジェクトのカプセル化を「強制」する方法です。perlobj を参照してください。ユーザー コードからのキャッチされない例外: /usr/local/share/perl5/Expect.pm 行 202 で非参照値を bless できません。/usr/local/share/perl5/Expect.pm 行 202 で。Expect::exp_init ("Expect", "\x{d}\x{a}witch>enable\x{d}\x{a}password:\x{d}\x{a}switch#show vlan\x{d} \x{a}\x{d}\x{a}VLA"...) b.pl 行 19 で呼び出されます"

0 投票する
1 に答える
244 参照

perl - ログアウト後にPerlの期待が機能しない

サーバーに接続し、いくつかのコマンドを実行し、切断してローカルでさらにいくつかのコマンドを実行するための非常に単純なコード。

このコードは、最初のexitコマンドまで正しく機能します。サーバーから切断されますが、スクリプト全体がフリーズしているようです。他のコマンドは実行されず、Ctrl+C を実行するか、タイムアウトになるまで待つ必要があります。

編集:コマンドをローカルで実行すると機能し、リモートでコマンドを実行すると機能し、ローカルでの作業に戻りたいのですが、できません。

また、ネストされた 's で同じことをしたいと思いsshます-あるサーバーに接続し、そこから別のサーバーに接続するなど...そしてそれらすべてで作業します。

私は何を間違っていますか?どうすれば望ましい動作を実現できますか?

0 投票する
1 に答える
877 参照

python - Perl ssh パスワード

perl を使用してマシンに SSH 接続し、いくつかのコマンドを発行しようとしています...

これは一般的な考え方ですが、パスワードの入力を求められたままです。私もpythonを使用しようとしましたが、パスワードのプロンプトを通過できません。一方、Expect はパスワードを適切に処理します。何が原因なのか誰にもわかりませんか?

編集:追加情報

Linuxマシンにパテを使用してから、さらに多数のLinuxマシンにsshします。上記の perl コードを使用すると、ユーザー名は正しく設定されますが、パスワードを毎回手動で入力する必要があります。

0 投票する
1 に答える
212 参照

perl - Expect.pm で受け取った制御文字を無効にする方法

Expect.pm を使用して SSH でリモート サーバーに接続しています。接続中に、Expect オブジェクトを介してコマンドを送信し、リモート サーバーから制御文字を含む応答を受け取ります。

これらの制御文字はすべて、Expect で行ったパターン マッチングを台無しにしています。私の質問は次のとおりです。返される文字にこれらの制御文字が表示されないようにするにはどうすればよいですか?

0 投票する
1 に答える
418 参照

perl - Perl で Expect を使用して、生成されたセッションのセッション ID を取得する

私はExpectsshに使用しています。生成されたセッションのセッション ID を知りたいです。それ、どうやったら出来るの?

これは私のコードです:

0 投票する
1 に答える
446 参照

perl - Perl telnet による認証を期待する

Expect 1.15 で作成されたアクティブな ssh セッションがあります。このセッションでは、第 2 レベルの認証のために次のコマンドを実行します。残念ながら、@ 文字で始まる奇妙なパスワードを使用する必要があります (例 @johndoe)

手動で試したところ、ログインに成功したため、資格情報は正しいです。コードを実行すると、常にエラー (ログインが正しくない) になるため、表示されたパスワードではなく別の文字列が送信されると思います。

あまりにも多くの種類の補間と補間された文字列を ascii コードでも試しました。

@ 文字が既に補間された文字列で補間エラーを引き起こす可能性があるかどうかは誰にもわかりますか?

パスワードを変更することはできません。そうしないと、予想されるバグを除外できます。

専門家が私を助けることができますか?ありがとう!

編集。追加されたログ