2
Net:SSH2を使用してscp_putを使用してリモートサーバーにファイルを配置しています。 これは、不明なエラーを返します。Perl Net :: SSH2 scp_putが不明なエラーを返します
-43, LIBSSH2_ERROR_UNKNOWN(-43), SCP failure
それは返すために数分かかりとしてエラーが、いくつかのタイムアウト/遅延の後に来るようです。
sftp-serverへの接続が機能しています。ディレクトリからディレクトリリストを取得できます。
SFTPクライアントでファイルを置くことができるので、そのディレクトリへのアクセス権があります。
私はWindows環境でStrawberry Perlを使用しています。
use warnings;
use strict;
use Net::SSH2;
my $dir1 = '.';
my $file = 'D:\\test\\test.txt';
my $ssh2 = Net::SSH2->new();
$ssh2->connect('testserver') or die "Unable to connect Host [email protected] \n";
$ssh2->auth_password('test','test') or die "Unable to login [email protected] \n";
if($ssh2->scp_put($file, $dir1)) {
print "File $file transferred to $dir1\n";
} else {
print "Couldn't transfer file $file to $dir1\n";
print join ', ', $ssh2->error;
print "\n";
}
cwd( '.')とは対照的に、リモート(例: '/ home/user')のフルパスを使用すると機能しますか? – stevieb
フルパスを使用しても違いはありません。ディレクトリリストはcwd(。)とフルパスで動作しますが、scp_putは機能しません。 – tommi
おそらく、NET :: SFTP:Foreignを試してみる必要があります。私たちは現行のPerlセットアップではインストールされていません。だから私はlibssh2とscp_putでそれを管理しようとしていたのです。 – tommi