Comment peut-on convertir FTP à SFTP dans un script Perl?
Question
J'ai un script Perl existant qui utilise l'objet FTP pour envoyer quelques fichiers à une boîte AIX. Je viens de découvrir que notre boîte Linux ne prend pas en charge FTP. Il prend en charge SFTP. Quelles mesures dois-je passer pour convertir mon script pour utiliser SFTP?
La solution
Votre script actuel utilise probablement le Net :: FTP Module . Vous aurez besoin du Net :: SFTP Module et ses dépendances de CPAN. Vous pouvez juste même commencer un nouveau script en utilisant l'existant comme guide. La logique est la même, cependant. Connectez-vous, envoyer et déconnecter.
Autres conseils
Je l'ai vraiment fait quelque chose de similaire. Mais il était de préparer un script FTP en cours à exécuter via SFTP en cas de besoin.
J'ai fait un objet wrapper autour Net::SFTP
qui ressemble et agit comme un l'objet de Net::FTP
. Par conséquent, tous les appels peuvent être laissés dans des endroits avec une implémentation différente.
Je suis passé de ceci:
my $client = Net::FTP->new( Host => 'ftp.somehost.com', ... );
à
my $client = FTPClient->new( Host => 'ftp.somehost.com', ...
, secureFTP => 1
);
Et mis en œuvre toutes les méthodes que j'utilisais de Net::FTP
dans ma nouvelle classe . Net::SFTP
redonne des différents retours, donc vous devez envelopper effectivement fonction au lieu d'utiliser quelque chose comme Class::Delegator
.