3

Net::SFTP::Foreignを使用する Perl スクリプトがあり、手動で実行すると問題なく動作します。cron タスクとしてセットアップすると、スクリプトが起動しますが、エラー 37、接続が壊れて失敗します。理由がわかりません。接続が失敗した理由を正確に知る方法を知っている人はいますか?

ここに私が作成する場所があります:

$sftp = Net::SFTP::Foreign->new("$source_machine_user_id\@$source_machine_ip",
                                autodie => 1, key_path => $id_file_path,
                                fs_encoding => 'latin1');

を使用しましたが、使用more => 'v'しない場合よりも多くの情報が得られません。も試してみましautodie => 0たが、違いはないようです。

認証に公開鍵を使用しています。

4

1 に答える 1

1

これは通常、 がsshcron にないときに発生します$PATH

コンストラクター オプションsshを使用して、スクリプトの場所をハード コーディングします。ssh_cmd例えば:

$s = Net::SFTP::Foreign->new($host, ssh_cmd => '/opt/openssh/bin/ssh', ...);
于 2012-04-26T13:52:52.387 に答える