-1

権限がないため、net::ssh などのモジュールをインストールできません。また、その他のより複雑な理由もあります。古い方法でこれを行う必要があります。

my $host = "box215";
my $cmd_proc = "/bin/ps -ef";
my $cmd_disk = "df -h";
my $cmd = "ssh -n -o ConnectTimeout=20 $host '$cmd_proc ; $cmd_disk' ";

私がこれまでに持っているものです。

私は基本的にボックスからプロセスとディスク容量を取得して返したいと思っています。ただし、ボックスのパスワードプロンプトを処理する方法がわかりません。

4

3 に答える 3

1

本当に絶対 に Perl モジュールをインストールできない場合オプションは大幅に制限されます。私はただあなたの言葉を信じて、モジュールをインストールできないことについてあなたが言及した「その他のより複雑な理由」が、あなたの上司の生命を脅かす CPAN アレルギーまたは解決されていない同様に悲惨なものに関連していると仮定します。ローカルにインストールすることによって。いくつかの (理想的ではない) オプションを次に示します。

  1. (最良のオプション)システム管理者に ssh キーの設定を依頼して、リモート ホストに接続するためにパスワードを入力する必要がないようにしてください。Perl モジュールを使用できる場合でも、実際にはこれを行う必要があります。
  2. 期待スクリプトを使用してパスワードを送信します。もちろん、これにはインストールが必要であり、オプション#1と同様に、システム管理者への訪問が必要になる場合があります。このルートをたどる場合、ここに良いチュートリアルがあります(うろついているのではなく、期待どおりです)。しかし正直なところ、expect を使用して ssh パスワードを送信するだけの場合は、ssh キーをセットアップすることで簡単に対処できる多くの不必要な複雑さを導入していることになります (オプション #1 を参照)。

どちらのオプションでも、システム管理者に助けを求める必要がある場合があることに注意してください。彼/彼女がすでに何かをインストール/構成しようとしている場合は、その間に Perl モジュール ( Expect.pmおよびNet::SSH2 ) をインストールするように依頼することもできます (もちろん、誰かができる場合を除きます)。その結果、死ぬかひどく傷つく)。

于 2013-09-11T16:07:48.587 に答える
1

パスフレーズを必要としない SSH キーを使用してサーバーに対して認証する、限定された特権アカウントを使用します。

http://www.paulkeck.com/ssh/

于 2013-09-11T15:49:03.557 に答える