【问题标题】:Perl SCP ERROR(Asking to Continue?)Perl SCP 错误(要求继续?)
【发布时间】:2011-07-01 09:54:49
【问题描述】:

这就是我正在做的事情

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 行

我很困惑为什么会这样,因为我没有收到这个错误

【问题讨论】:

    标签: perl scp


    【解决方案1】:

    简答:

    提高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 查找需要更长时间),这可能还不够。

    【讨论】:

      猜你喜欢
      • 2014-06-05
      • 2020-03-26
      • 1970-01-01
      • 1970-01-01
      • 2011-10-17
      • 2011-08-23
      • 1970-01-01
      • 2010-12-25
      • 1970-01-01
      相关资源
      最近更新 更多