这就是我正在做的事情
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行
我很困惑,为什么会发生这种情况,因为我没有收到此错误
答案 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查看需要更长时间),这可能还不够。