Como seria converter de FTP para SFTP em um script Perl?
Pergunta
Eu tenho um script Perl existente que usa o objeto FTP para enviar um par de arquivos para uma caixa AIX. Eu só descobri que a nossa caixa de Linux não suporta FTP. Ele faz suporte SFTP. Que passos devo passar para converter o meu script para usar SFTP?
Solução
O seu script atual é provavelmente usando o Net :: FTP módulo. Você vai precisar de módulo Net :: SFTP e suas dependências do CPAN. Você pode apenas até iniciar um novo script usando o existente como um guia. A lógica é a mesma, no entanto. Ligar, enviar e desconexão.
Outras dicas
Eu realmente feito algo similar. Mas foi para preparar qualquer script FTP atual para ser executado através de SFTP, quando necessário.
Eu fiz um objeto de invólucro em torno Net::SFTP
que parece e age como um Net::FTP
objeto. Portanto, todas as chamadas poderiam ser deixados em locais com uma implementação diferente.
Eu fui de esta:
my $client = Net::FTP->new( Host => 'ftp.somehost.com', ... );
para
my $client = FTPClient->new( Host => 'ftp.somehost.com', ...
, secureFTP => 1
);
E apenas implementado todos os métodos que eu estava usando de Net::FTP
na minha nova classe . Net::SFTP
dá de volta alguns retornos diferentes, então você realmente tem que embrulhar função em vez de usar apenas algo como Class::Delegator
.