2

我有一个现有的 Perl 脚本,它使用 FTP 对象将几个文件发送到 AIX 机器。我刚刚发现我们的 Linux 机器不支持 FTP。它确实支持 SFTP。我应该通过哪些步骤将我的脚本转换为使用 SFTP?

4

2 回答 2

6

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

于 2009-02-06T19:07:32.740 回答
6

我实际上做过类似的事情。但它是准备任何当前的 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 
                           ); 

并且刚刚实现了我Net::FTP在新课程中使用的所有方法。Net::SFTP回馈一些不同的回报,因此您必须实际包装函数,而不仅仅是使用Class::Delegator.

于 2009-02-06T20:33:43.660 回答