Utilizzare LFTP per fare un mirroring delle directory con un account FTP

lftp” è un client ftp che può essere utilizzato per sincronizzare directory di dati con un account ftp remoto.

Ipotizziamo di avere dei dati sulla nostra Linux Box firewall o server di dati locale e vogliamo eseguire un backup dei nostri dati, oppure vogliamo sincronizzare la directory dati con la directory del nostro server web in hosting presso un altro provider, o meglio ancora, ipotizziamo di avere dei dati sulla nostra Linux Box che utilizziamo tutti i giorni, ma che nottetempo, questi dati devono essere sincronizzati e pubblicati con il nostro server web remoto per renderli dispnibili tramite http.

Ebbene, lftp fa al caso nostro!

Per installare lftp, basta eseguire “apt-get install lftp“.

Il metodo migliore per utilizzarlo è di creare uno script nel quale scrivere i parametri di accesso, questo per facilitare l’esecuzione del backup e/o mirror senza dovere ogni volta digitare gli stessi comandi, ma perlopiù per potere inserire tale script come “cron job” e farlo eseguire sistematicamente.

Creiamo uno script per il download dei dati:

Eseguiamo il nostro editor preferito ed immettiamo i dati necessari e lo salviamo con il nome “download”:

open -u user,password -p [port] [server]
mirror -c -e /directory_remota /directory_locale
exit

user= è il login ftp del vostro server web o server ftp remoto, per accessi con username particolari come ad esempio un account di aruba, il quale è uno dei pochi provider che vendono hosting con spazio web illimitato, utilizzare l’username con gli apici come segue:

open -u ‘132345@aruba.it’,password -p [port] [server]
mirror -c -e /directory_remota /directory_locale
exit

password= è la password del vostro account
[port]= è la porta del servizio ftp (21 di default)
[server]= è l’indirizzo host del vostro account (es. ftp://miodominio.com, può essere utilizzato anche sftp://)
/directory_remota= è la directory remota del vostro server web e/o ftp
/directory_locale= è la directory della vostra Linux Box

Utilizzare il percorso “completo” sia per la directory remota che per quella locale.
L’opzione “-e” significa che se nella directory remota un detto file non esiste più, verrà cancellato anche nella directory locale, questo ovviamente per sincronizzare perfettamente entrambe le directory, volendo, tale parametro può essere omesso.

Salviamo il nostro script, come detto con il nome “download”.

Creiamo adesso uno script per l’upload dei dati:

Eseguiamo ancora una volta il nostro editor preferito (nano) immettiamo i dati necessari e lo salviamo con il nome “upload”:

open -u user,password -p [port] [server]
mirror -c -e -R /directory_locale /directory_remota
exit

Salviamo il nostro script, come detto con il nome “upload”.

A prima occhiata, sembra che il nostro script “upload” non sia diverso dal precedente, in realtà esiste un parametro in più:
-R” e le directory invece sono invertite.

Il parametro -R indica che vogliamo fare upload dei dati dalla directory locale verso un percorso remoto.
lftp ha molti parametri, per approfondire, “man lftp”.

Creati due script downlod e upload non ci resta che eseguirli.

Se volessimo fare il download dal nostro server web/ftp remoto, eseguiamo:

# lftp -f download

Se invece volessimo fare un upload dei dati sul server web/ftp remoto, eseguiamo:

# lftp -f upload

Semplicissimo e molto funzionale.

Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!

Hai dubbi o problemi? Ti aiutiamo noi!

Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.
Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.
Amazon Music
Scopri le ultime offerte per dischi ssd su Acquista su Amazon
Scopri le ultime offerte per memorie RAM DDR su Acquista su Amazon
Scopri le ultime offerte per Chromebook su Acquista su Amazon
Scopri le ultime offerte per Raspberry su Acquista su Amazon

Potrebbero interessarti anche...

11 risposte

  1. giuliano ha detto:

    bellissimo,ottimo ha un solo problema che non riesco a correggere nel fare l’upload che è quello che serve a me visto che lo utilizzo come sorta di backup,su determinati nomi di file (ad esempio se hanno l’accento) non vengono trasferiti.
    questo è l’output:
    giuliano@desktop:~$ lftp -f /home/giuliano/script/lftpdocumenti.sh
    mirror: Access failed: 550 Requested action not taken. (05 altra metà.MP3)

  2. xer ha detto:

    Giuliano, prova ad utilizzare un charset utf8…

    • giuliano ha detto:

      cioè,dimmi come fare per favore,sono alle prime armi di linux.ciao e complimenti ancora.

      • xer ha detto:

        Ciao
        Se hai creato degli script come ho consigliato, i quali vengono richiamati dal comando “lftp”, prova ad inserire queste due righe:

        open -u user,password -p [port] [server]
        set file:charset utf8
        set ftp:charset iso8859-1

        mirror -c -e /directory_remota /directory_locale
        exit

        In realtà non se se questo charset va bene al caso tuo, si dovrebbe fare un troubleshooting da comando manuale, leggere il “man” del comando (da console digita “man lftp”), non fa mai male. ;-P

  3. masavini ha detto:

    ciao,
    fino a poco tempo non avevo problemi ad accedere al mio spazio ftp su aruba con lftp.
    possibile che da qualche giorno (settimana?) non riesca più a fare il login?
    ho aperto un ticket con l’assistenza, ma mi dicono che non è cambiato nulla… tu riesci ancora a usare lftp con aruba?
    matteo

    • xer ha detto:

      @Matteo

      L’unico problema che mi ha dato aruba è il “login” che deve essere necessariamente incapsulato tra due apici, purtroppo però ho chiuso l’account aruba e non posso provare, mi dispiace.
      Se sicuro di avere impostato la modalità passiva?

  4. Roberto ha detto:

    Prova ad usare le virgolette per racchiudere il nome del file oppure prova ad usare nomi di file senza spazi.

  5. Rene' ha detto:

    Ciao ti scrivo perchè ho visto questo articolo ed è quello che mi ha aiutato di più e assomiglia di più a quello che ho bisogno di fare…
    1: Sono un baby pinguino dopo 20 anni tra dos e win sono passato a Ubuntu…quindi sbabbo anche se mi sto documentando…
    2: Devo fare una serie di upload consistenti da un vecchio portatile sul quale ho faticosamente installato (cdrom rotto..usb non riconosciuto all’avvio) la distro DSL……e ho scoperto che il client ftp che riprende l’upload anche se cade la connessione è lftp….tutto linea di comando…ok partiamo con i dubbi:

    – Nell’articolo parli di script…quindi devo salvarlo con estensione .sh?

    Questo è il mio script:

    open -u renes@xxxxx.it,xxxxxx -p [21] [ftp.eu.filesonic.com]
    mirror -c -e -R /home/nexusei/prova ftp/
    exit

    Come vedi ho creato una cartella per provare quando in realtà i file dovranno poi essere prelevati da una chiavetta perchè l’hd è troppoo piccolo…clicco sopra e dico esegui nel terminale…si apre e si chiude velocissimo un terminale e fine della storia….credo che stò facendo un sacco di errori…mi potresti darer qualche suggerimento..oppure sai dove posso recuperare una guida in italiano per imparare ad usare lftp…grazie mille

    • xer ha detto:

      Ciao
      No, non devi aggiungere l’estensione .sh, perchè un file utilizzato dall’eseguibile per leggere i comandi.

      Il tuo sembra tutto okay, tranne gli apici, riporto parte della mia guida:
      ———————————————————————————–
      user= è il login ftp del vostro server web o server ftp remoto, per accessi con username particolari come ad esempio un account di aruba, il quale è uno dei pochi provider che vendono hosting con spazio web illimitato, utilizzare l’username con gli apici come segue:

      open -u ’132345@aruba.it’,password -p [port] [server]
      mirror -c -e /directory_remota /directory_locale
      exit
      ————————————————————————————-

      Spero di esserti stato di aiuto!

  6. francesco ha detto:

    seguendo la procedura per il download mi fa connettere al server remoto, ma non mi fa scaricare la cartella.
    ho notato inoltre che in una rete locale il download funziona perfettamente.
    cone mai?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.