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

有帮助吗?

解决方案

您当前的脚本可能是使用的Net :: FTP 模块。您将需要的Net :: SFTP 模块和CPAN它的依赖。使用现有的一个为指导,你可能只是甚至开始一个新的脚本。该逻辑是相同的,虽然。连接,发送和断开连接。

其他提示

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

我做了一个包装对象 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.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top