問題タブ [perlnetssh]

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 投票する
2 に答える
1588 参照

perl - 長時間実行されている ssh コマンドが stdout への出力を停止することがあります

Perl::Net::SSH を使用して、リモート ボックスでのスクリプトの実行を自動化しています。ただし、これらのスクリプトの中には完了するまでに非常に長い時間がかかるもの (1 時間または 2 時間) があり、実際には接続を失うことなく、スクリプトからのデータの取得を停止することがあります。

私が使用しているコードは次のとおりです。

そして、ここに私の%sshParamsがあります:

長時間実行されているコマンドの 1 つがランダムに、stdout または stderr イベントの印刷/起動を停止し、終了しないことがあります。$ssh->cmdまだブロックしているため、ssh接続は(私が知る限り)切断されません。

この動作を修正する方法はありますか?

0 投票する
3 に答える
883 参照

perl - NET :: SSH:PERLを使用してPATHをエクスポートします

私は、実行する面倒​​なタスクのいくつかを自動化するためのシェルスクリプトを書いています。サーバーにSSHで接続し、PATH変数をリモートで変更し、次のコマンドを実行するためにその変数を保持する必要があります。以下のコード;

ただし、PATHは変更されません。これを実装する別の方法はありますか、それとも私は何か間違ったことをしていますか?タスクを自動化する必要があるので、$ssh->shellがここで役立つとは思わないでください。提案してください。


私は提案に従って変更を加えました、そしてすべてがうまくいきます。ただし、環境変数を表示しようとしたときに発生する別の問題に気づいています。

現在、Net :: SSH ::Perlを使用してリモートサーバーに接続しています。$ENV{"HOME"}によって返される値は、リモートサーバーではなく、ホームディレクトリの値です。ただし、次のようにコマンドを追加すると、次のようになります。

次に、表示されるユーザーIDは、リモートサーバーにSSH接続するために使用するユーザーのものです。私は他のモジュールをインストールしておらず、利用できるのはNet:SSh:perlだけなので、これを使用せざるを得ません。

コマンドを実行するためのルーチン

なぜこれが起こる可能性があるのか​​についての提案はありますか?

0 投票する
2 に答える
676 参照

perl - Net::SFTP::Foreign - ターゲット ディレクトリが存在する場合、rput は (一種の) 失敗します

http://metacpan.org/pod/Net::SFTP::Foreign

$dest が $host に存在する場合、rput の on_error が常に発生し、$sftp->error は "リモート ディレクトリ '/whatever' already exists" になります。

エラーにもかかわらず、rput は続行し、dir を再帰的にコピーしますが、ターゲット ホストでは、/whatever ではなく、/whatever のコピーされます。つまり、/whatever/whatever になります。

これは、rput の前に行うと厄介な回避策として機能しますが、実際には宛先ディレクトリを削除したくありません。

誰が私が間違っているのか分かりますか? 転送したいすべてのファイルをグロブしてから foreach $file (@glob_result) { $sftp->put ( yada, yada ) }; を実行したほうがよいでしょうか? それは非効率的でエラーが発生しやすいようです。

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

perl - Net::SSH::Expect 1.09 で「collect_exit_code」に相当するものはありますか

このリンクに出くわしました: Bash から呼び出された Expect スクリプトの終了ステータス コードですが、役に立ちませんでした。リモートで実行されるコマンドから終了ステータス コードを取得しようとしていたときに、"collect_exit_code" および "last_exit_code" メソッドを持つ Net::SSH::Expect 0.08 の cpan ドキュメントに出会いました。現在使用していますが、1.09 を実行しているときに適切な代替品を見つけることができません。

次のように、シンプルに保ちたいと思います。

しかし、Net Expect を介してコマンドを実行するときに、これらのような方法を使用せずに終了ステータスを取得する簡単な方法を思いつきません。

Fabric への切り替えがこの問題の解決策になるとは思いません。これは perl アプリケーションであり、Perl に固執する必要があります。

前もって感謝します。

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

perl - Net::SSH2は公開鍵を使用して認証します

Net::SSH2を使用してリモートマシンでコマンドを実行しようとしています。ただし、公開鍵を使用して認証する方法がわかりません。ドキュメントには、この方法が記載されています。

ただし、公開鍵と秘密鍵の両方が必要です。とにかく公開鍵を使用するだけで認証できるものはありますか?ありがとう!

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

perl - ダウンロードした Net::SSH2 モジュールを Perl で使用するには?

Perl モジュールNet-SSH2-0.43を使用できるようにダウンロードしました。Net::SSH2しかし、その後何をする必要があるのか​​ わかりません。パスなどを含めるだけです。助けてください。

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

perl - Windows 2008 r2 上の perl 5.20.2 用の NET-SSH2

にインストールしようとしNET-SSH2ていますが、成功 perl 5.20.2しません。windows 2008r2

C:\Perl>ppm install NET-SSH2
ActiveState パッケージ リポジトリ パックリストをダウンロードしています...失敗しました 500 ppm4.activestate.com に接続
できません:80 ppm インストールに失敗しました: NET-SSH2 を提供するパッケージが見つかりません

助けてください