我有一个现有的Perl脚本,它使用FTP对象将一些文件发送到AIX盒子.我刚刚发现我们的Linux机箱不支持FTP.它确实支持SFTP.我应该通过哪些步骤将脚本转换为使用SFTP?
您当前的脚本可能正在使用Net :: FTP模块.您需要来自CPAN 的Net :: SFTP模块及其依赖项.您甚至可以使用现有脚本作为指南来开始新脚本.但逻辑是一样的.连接,发送和断开连接.
我其实做过类似的事情.但是,在需要时,准备通过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
.