1

ssh を使用して別のマシンに接続する必要がある perl スクリプトがあり、そこで別の perl スクリプトを実行します。私はこの行を使ってみました:

system("ssh $admin_server 'perl /Perl/scripts/capture_server_restarts_gse.pl $month $date'");

しかし、スクリプトがその行に到達するたびに、リモート マシンのプロンプトが表示され、スクリプトは実行されません。

プロンプトを表示せずにスクリプトが他のマシンで自動的に実行されるようにするにはどうすればよいですか。

注: 既に解決済みのリモート マシンに接続するためのパスワードとユーザーは必要ありません。

4

2 に答える 2

4

公開鍵を他のマシンにコピーしてみませんか? そうすれば、事前承認されます。

これを使用してこれを行う方法の説明は次のとおりですssh-keygen

sshそれ以外の場合は、パスワードをフィードする必要があります。ssh通常は a から入力をtty取得し、パスワードを使用してスクリプトを構成する必要があるため、これは注意が必要です。

于 2013-01-14T15:47:30.000 に答える
0

SSH サーバーは、クライアントから渡されたコマンドの代わりに、常にいくつかのカスタム シェルを実行するように構成されている場合があります。

コマンドラインから簡単なコマンドを実行してみてください。

  ssh server ls

可能性は低いですが、システム引数に挿入された perl 変数に、より適切なエスケープが必要なシェル メタ文字が含まれている可能性があります。たとえば、$admin_server 内のセミコロン。

于 2013-01-15T07:56:59.870 に答える