Su Ubuntu si installa con un semplice:
apt-get install lftp
Sulla macchina destinazione (Windows) invece è sufficiente impostare un account FTP. Per chi non avesse un server FTP installato, può utilizzare FileZilla Server, affidabile, semplice e completo.
L'impostazione di lftp è abbastanza semplice se ci si limita alle impostazioni base e per un mirroring di una o più cartelle. Per ogni realtà informatica è possibile creare script distinti, che determinano come lftp si connette e come invia o scambia i file.
Un tipico esempio potrebbe essere questo script, che invia alla macchina remota tutti i file non ancora presenti o aggiornati ed elimina i file non più disponibili, e sincronizza così le cartelle:
Codice:
# debug #debug 10 #debug 5 #debug 1 # login open 1.2.3.4 user nome_utente password # mirror mirror -n --reverse --dereference --delete --delete-first --no-perms --no-umask -X *.log /cartella_locale /cartella_remota exit
Codice:
0 6 * * * root /usr/bin/lftp -f /cartella/nome_script>/dev/null 2>&1
Il comando user specifica il nome utente e password sulla macchina remota, che necessariamente deve avere accesso all'area dove si desidera fare il backup e dove prelevare aventuali file per un disaster recovery, ossia recupero file intatti.
Il comando open può anche accomodare il secondo, user, con una serie di parametri. Personalmente preferisco la notazione esplicita, perché non devo ricordare la sintassi, in quanto si autocommenta:
Codice:
open -u 'nome_utente',password -p 21 1.2.3.4
- -n: copia soltanto i file più recenti
- --reverse: copia i file da locale a remoto
- --dereference: invia i file contenuti in link simbolici come se fossero file nella cartella
- --delete: elimina i file non più esistenti dalla cartella remota
- --delete-first: elimina prima i file, poi scrivi file nuovo; utile per i sistemi con spazio ridotto
- --no-perms: non copiare i permessi
- --no-umask: non impostare gli attributi di file
- -X: escludi singoli o gruppi di file, opzione ripetibile
Infine, il comando exit termina la connessione ed esce dallo script.
Dopo l'impostazione dello script conviene fare una prova manuale. Per un controllo più accurato si abilita la modalità debug, togliendo a uno dei comandi debug il commento, ad esempio:
debug 5
Poi si lancia lftp dal prompt:
lftp -f nostro_script
lftp tenta di connettersi alla macchina remota e scambiare le informazioni al fine di determinare quali file inviare o eliminare. Dalle informazioni aggiunti possiamo vedere se tutto funziona a dovere, e dove ci sono errori, ripararli.
Nota importante: Conviene in ogni caso partire per la prima volta da una sandbox, ossia da cartelle locali e remoti dove non è possibile fare danni. Soltanto quando siamo sicuri che tutto funziona come programmato, passiamo alle cartelle in produzione!