http://metacpan.org/pod/Net::SFTP::Foreign的Net :: SFTP ::國際 - rput失敗(在某種程度上)如果目標目錄中存在
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; }
);
如果$ DEST $主機,rput的ON_ERROR總是火災和$ sftp-上存在>錯誤是「遠程目錄「/不管」已經存在」
儘管出現錯誤,rput進行,並遞歸複製目錄,但taget主機上,它會得到下複製/不管,而不是超過 /不管。即我最終以/無論/什麼。
這作爲crumby解決辦法,如果rput以前做過,但我真的不希望刪除目標目錄:
$sftp->rremove($dest);
任何人有任何知道我做錯了嗎?我將所有的通配符我要傳輸的文件的更好,然後做一個foreach $文件(@glob_result){$ sftp->放(亞達,亞達)};?這似乎效率低下且容易出錯。
嗯,你說得對。我無法重現簡單測試程序的/無論/什麼。我不確定當我觀察到這種行爲時我做了什麼。 – 2012-03-02 15:19:22
好吧,所以現在我的on_error子檢查該消息並忽略它。其他錯誤會阻止我的程序。感謝您的回覆! – 2012-03-02 15:27:28