http://metacpan.org/pod/Net::SFTP::Foreign
my ($user, $password, $host) = @_;
my ($source, $dest) = '/whatever';
my $sftp = Net::SFTP::Foreign->new(
user => $user,
host => $host,
password => $password,
more => [ -o => 'StrictHostKeyChecking no' ]
);
$sftp->rput(
$source, $dest,
overwrite => 1,
on_error =>
sub { print $sftp->error; }
);
が存在する場合rputは(一種の)失敗し、rputのON_ERROR常に火災や$ sftp->エラーは「リモートでありますすでにエラーにもかかわらず、」
が存在するディレクトリ「/何」、rputは上運び、再帰的にコピーディレクトリを、しかしtagetホスト上ではなくオーバー/何で、の下で/何をコピーされますよ。すなわち、私は/何でも/何でも終わります。私が間違ってやっている
$sftp->rremove($dest);
誰もが任意のアイデアを持っている:
rput前に行う場合、これはcrumbyの回避策として機能しますが、私は実際には先のディレクトリを削除したくありませんか?私は転送したいファイルのすべてをグロブしてから、foreach $ファイル(@glob_result){$ sftp-> put(yada、yada)};それは非効率的でエラーが起こりやすいようです。
うーん、あなたは正しい。私は単純なテストプログラムのために/何を/何でも再現することはできません。私はその行動を観察したときに私が何をしたのか分かりません。 –
これで、on_errorサブがそのメッセージをチェックし、無視します。他のエラーは私のプログラムを止めるでしょう。お返事をありがとうございます! –