Come si potrebbe convertire da FTP per SFTP in uno script Perl?
Domanda
Ho uno script Perl esistente che utilizza l'oggetto FTP per inviare un paio di file ad una scatola di AIX. Ho appena scoperto che la nostra casella di Linux non supporta FTP. Esso supporta SFTP. Quali passi devo passare attraverso di convertire il mio script per utilizzare SFTP?
Soluzione
Lo script corrente probabilmente sta usando il modulo Net :: FTP . Avrete bisogno del modulo Net :: SFTP e le sue dipendenze da CPAN. Si può anche solo iniziare un nuovo script utilizzando l'esistente come guida. La logica è la stessa, però. Collegare, inviare e scollegare.
Altri suggerimenti
In realtà ho fatto qualcosa di simile. Ma era quello di preparare qualsiasi script FTP corrente da eseguire via SFTP quando necessario.
Ho fatto un oggetto wrapper Net::SFTP
che sembra e si comporta come una Net::FTP
oggetto. Pertanto, tutte le chiamate potrebbero essere lasciati in luoghi con una diversa implementazione.
Sono andato da questo:
my $client = Net::FTP->new( Host => 'ftp.somehost.com', ... );
a
my $client = FTPClient->new( Host => 'ftp.somehost.com', ...
, secureFTP => 1
);
E appena implementato tutti i metodi stavo usando da Net::FTP
nella mia nuova classe . Net::SFTP
restituisce alcuni ritorni diversi, in modo da avere per avvolgere in realtà la funzione invece di utilizzare qualcosa di simile a Class::Delegator
.