Perl SCP ERROR(要求继续?)

时间:2011-02-21 16:36:07

标签: perl scp

这就是我正在做的事情

my $username = "user";
my $password= "pass";
my $host="xxx.xxx.xxx.xxx";

my $scpe =  Net::SCP::Expect->new(user => $username,
                                    password => $password,
                                    preserve => 1,
                                   recursive => 1,
                                  verbose=>1,
                  auto_yes=>1);

$scpe->scp("$file","$host:./drop/drop.txt");

当我运行此代码时没有错误我正在使用unix框,$file在我的目录中并具有完全权限,我也在unix框中将目录更改为temp但是当其他人运行此代码时他们得到了

  

执行scp时遇到问题:您确定吗?   你想继续连接   (是/否)?在scp.pl第242行

我很困惑,为什么会发生这种情况,因为我没有收到此错误

1 个答案:

答案 0 :(得分:0)

简答:

提高timeout_auto值:

my $scpe =  Net::SCP::Expect->new(user => $username,
                                    password => $password,
                                    preserve => 1,
                                   recursive => 1,
                                  verbose=>1,
                                  timeout_auto=>10, #For example - 5 should probably be plenty
                  auto_yes=>1);

答案很长。

  

执行scp的问题

Net::SCP::Expect在它从SCP本身获取的文字错误消息之前的内容,所以在这种情况下

  

您确定要继续吗?   连接(是/否)?

这通常是因为SCP正在连接的主机尚不清楚。

如果您想避免此错误as the CPAN Documentation for NET::SCP::Expect explains,则应将auto_yes设置为1,但我发现您已经这样做了。

如果这没有帮助,会考虑提高timeout_auto。它默认为1秒,但如果SCP需要更长的时间来构成“你确定”的问题(因为例如主机的DNS查看需要更长时间),这可能还不够。