Laser Office s.a.s di Magnaterra Alessandro & C.

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

Posted by xer su 25 gennaio 2010


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.

12 Risposte to “Utilizzare LFTP per fare un mirroring delle directory con un account FTP”

  1. giuliano said

    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 said

    Giuliano, prova ad utilizzare un charset utf8…

    • giuliano said

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

      • xer said

        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 said

    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 said

      @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 said

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

  5. Rene' said

    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 said

      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 said

    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?

  7. Torno sempre su questa pagina ogni volta che mi serve lftp… ottimo lavoro!

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

 
%d blogger hanno fatto clic su Mi Piace per questo: