代码之家  ›  专栏  ›  技术社区  ›  EvilTeach

如何在Perl脚本中从FTP转换为SFTP?

  •  2
  • EvilTeach  · 技术社区  · 16 年前

    我有一个现有的Perl脚本,它使用FTP对象将几个文件发送到AIX主机。我刚刚发现我们的Linux盒子不支持FTP。它支持SFTP。要将脚本转换为使用SFTP,我应该经历哪些步骤?

    2 回复  |  直到 16 年前
        1
  •  6
  •   Brad Gilbert    16 年前

    您当前的脚本可能正在使用 Net::FTP 模块。你需要 Net::SFTP 模块及其与CPAN的依赖关系。你甚至可以使用现有的脚本作为指导,开始一个新的脚本。不过,逻辑是一样的。连接、发送和断开连接。

        2
  •  6
  •   Axeman maxelost    16 年前

    我其实也做过类似的事情。但这是为了准备任何当前的FTP脚本,以便在需要时通过SFTP运行。

    我做了一个包装物 Net::SFTP 它看起来和行为都像 Net::FTP 对象。因此,所有调用都可以留在不同实现的地方。

    我从这里出发:

    my $client = Net::FTP->new( Host => 'ftp.somehost.com', ... );
    

    my $client = FTPClient->new( Host => 'ftp.somehost.com', ...
                               , secureFTP => 1 
                               ); 
    

    刚刚实现了我使用的所有方法 网络:FTP 在我的新班级里。 网络::SFTP 返回一些不同的返回值,因此您必须实际包装函数,而不仅仅是使用以下内容 Class::Delegator .