L’apertura di IBM i al mondo Open Source permette di installare linguaggi e tools che semplificano i processi delle nostre applicazioni aziendali.
Ad esempio, un tipico caso è quello di SFTP che ha sostituito il vecchio FTP in diversi processi aziendali di scambio dati (spedizioni con i corrieri, borderò ecc).
Se dobbiamo scambiare files vis SFTP non sempre abbiamo la possibilità di rendere client e server “trusted” tramite uno scambio di chiavi RSA che garantiscono una comunicazione sicura senza doversi scambiare le password tutte le volte.
Se dobbiamo continuare ad utilizzare utente e password, la gestione di script batch non è così semplice come siamo abituati a fare con FTP e dobbiamo ricorrere a utility (sempre dal mondo open source) come Expect: ne abbiamo parlato sempre su questo blog qualche mese fa: SFTP con password (no SSH key authentication).
Una alternativa interessante, che apre l’IBM i oltre che a ftp e sftp anche ad altri protocolli come torrent, è “LFTP”
Lftp permette di creare degli script simili a quelli che utilizzavamo con FTP … con utente e password nello script stesso, perdendo qualcosa da un punto di vista sicurezza interna a vantaggio della semplicità, aprendo inoltre un mondo di nuove possibilità come SFTP, TORRENT, HTTP, controllo della banda di upload – download, ripresa dei download in caso di interruzione, funzionalità di mirror (in stile rsync) tra directory del client e quelle del server.
Insomma … piccolo, ma veramente potente, pacchetto open source: vediamo come installarlo e utilizzarlo in ambiente IBM i
Da ambiente QSH, o meglio, con un terminale SSH connesso all’ambiente PASE di IBM i:
bash-4.4$ yum install lftp
Seguiamo i passi di installazione e iniziamo a provarlo su un server SFTP pubblico e scarichiamo una intera directory del server in una nostra directory IFS.
Public SFTP Server: demo.wftpserver.com
Port: 2222
User: demo-user
Password: demo-user
Now create a new directory on our IFS
bash-4.4$ mkdir /home/faq400/wftp_download
Then we can download al the remote directory with this command with an integrated script:
bash-4.4$ lftp -c "set ssl:verify-certificate no; set sftp:auto-confirm yes; open sftp://demo-user:demo-user@demo.wftpserver.com:2222; lcd /home/faq400/wftp_download; cd download; mget *;quit"
Nel caso sopra indicato effettuiamo un download di una intera directory. Se è una operazione periodica potrebbe aver senso ragionare in modo “incrementale” andando a scaricare solo i files modificati dall’ultimo download:
bash-4.4$ lftp -c "set ssl:verify-certificate no; set sftp:auto-confirm yes; open sftp://demo-user:demo-user@demo.wftpserver.com:2222; mirror --verbose --use-pget-n=8 -c /home/faq400/download /pdf/2020/testmirror/;quit"
Le opzioni di LFTP sono veramente tantissimi … ecco qualche esempio:
mget -c to continue interrupted download
set net:limit-rate 0:512000 to limit upload bandwidth
set net:limit-total-rate 3M:500K to limit download and upload
lftp -e 'pget -c -n 5 /path/to/file' sftp://username@server Multiparts transfer
LFTP, un pacchetto open source veramente interessante per la gestione del file transfer anche in ambiente IBM i
--- Roberto De Pedrini Faq400.comRiceviamo e pubblichiamo ben volentieri questo "tip & trick" di Patrick Rizzi che presenta una tecnica che permette di intervenire…
Prendo spunto da una risposta di Michael Mayer sulle mailing list di Midrange.com a chi chiedeva come monitorare i messaggi…
Le imprese sono sempre più alla ricerca di strumenti che possano migliorare l'efficienza, la collaborazione e la gestione delle risorse.…
I primi di Aprile è uscita la "Spring Version" di ACS Access Client Solution, versione 1.1.9.5 Interessanti novità soprattutto in…
Se non vi bastava la ricca agenda delle sessioni del Common Europe Congress 2024, 3-6 Giugno Milano, ecco un altro…
Le funzioni di debug con Visual Studio Code sono disponibili da qualche tempo ma questa nuova versione 2.10.0 semplifica la…
View Comments
Unica nota importante Roberto: per poter funzionare occorre aggiungere RSA key alla lista degli host conosciuti.
Per risolvere basta provare a connettersi al server SFTP tramite il comando ssh o tramite una sessione QP2Term e digitare:
ssh -p 2222 sftp://demo@demo.wftpserver.com
Cliccare su yes, e scrivere la password.
Questo passaggio è fondamentale ed occorre eseguirlo per ciascun nuovo server SFTP che si desidera aggiungere solo la prima volta naturalmente.
Solo dopo, si possono lanciare i comandi riportati sopra con esito positivo.
Grazie
Giovanni