Skip to content
 

Backup via ftp con rsync e curlftpfs

Volete avere un backup sempre aggiornato del contenuto del vostro sito Internet, disponendo solo di un accesso FTP e consumando meno banda possibile? Avete uno storage remoto condiviso tra piu’ computer da mantenere sincronizzato?

Due strumenti per risolvere questo genere di problemi: curlftpfs e rsync. Il primo e’ un modolo FUSE per montare un indirizzo FTP come se fosse una normale directory del nostro spazio disco. Il secondo un programma che sincronizza file e directory in locale, via rsh e via ssh. Combinando la capacita’ di fare mirror tra risorse locali di rsync e quella di curlftpfs di montare un indirizzo FTP come risorsa locale, il gioco è presto fatto.

Entrambi sono presenti come pacchetti nei repository ufficiali di Ubuntu e altre Debian like, quindi per la loro installazione basta un sudo apt-get install curlftpfs rsync.

Ora la parte difficile. Monto il mio sito ftp:

curlftpfs -o "user:pwd" ftp.rainbowbreeze.it /mnt/rainbowbreeze.it

e poi ne faccio un mirror in locale, trasferendo soltanto i cambiamenti dall’ultimo mirror e cancellando file locali eventualmente non più esistenti in remoto:

rsync -azvv --delete /mnt/rainbowbreeze.it/ /opt/backup/rainbowbreeze.it/

Beh, da qui in poi e’ solo una questione di fantasia, e un sistemista GNU/Linux ne davvero tanta per definizione, dato che con tutte le potenzialità di questo sistema operativo, non puo’ che tenerla costantementei in allenamento Cool

Iniziamo col montare la nostra risorsa FTP all’avvio, aggiungendo alla fine del file /etc/fstab la seguente riga:


curlftpfs#user:pwd@ftp.rainbowbreeze.it /mnt/rainbowbreeze.it fuse rw,uid=500,user,noauto,allow_other 0 0 

se non si vuole mettere in chiaro username e password, si puo’ sempre creare il file /root/.netrc, con a sintassi spiegata nelle FAQ sul sito di curlftpfs e mettere li dentro le credenziali di accesso.

A questo punto, basta anche un cronjob per eseguire, grazie ad rsync, il mirror costante del sito in locale.

Se poi volete gestire uno storage remoto tenendolo sincronizzato tra più pc, allora basta fare un primo mirror dallo storage verso il vostro pc, e poi dal pc verso lo storage ogni volta che modificate la copia dei contenuti sul vostro pc.

Non avete un sito ftp da usare come storage remoto?  Diciamo che non ci credo, poi comunque gmailfs che esiste a fare?

6 Comments

  1. Francesco says:

    Ciao! Bel post, mi è stato molto utile! Però mi sa che l’istruzione per montare curlftpfs è
    curlftpfs -o user=”nome:password” http://ftp.sito.com mountpoint/
    Almeno a me funziona solo così :)

    Francesco

  2. Francesco says:

    ovviamente è
    curlftps -o user=”user : password” …
    (senza spazi), il software del sito mi ha trasformato i due punti + p (: p) in :p

    F

  3. Andrea says:

    senti ma sei sicuro di
    rsync -azvv –delete /mnt/rainbowbreeze.it/ /opt/backup/rainbowbreeze.it/
    perchè sulla mia ubuntu ha cominciato a CANCELLARE il contenuto del secondo pathname (cazzo)
    fortuna che prima del backup mi son fatto un backup

  4. rainbowbreeze says:

    sicurissimo… l’opzione –delete serve appunto per questo, per cancellare tutto quello che c’e’ di diverso nel secondo pathname rispetto a quello che c’e’ nel primo, in modo da avere un mirror preciso…

  5. ilvio says:

    Ho provato questa procedura, ma quando apro la cartella mi da un errore di ftp non trovato:

    curlftpfs#utente:password@ftp.dominio.com /media/nome-cartella fuse rw,uid=500,user,noauto,allow_other 0 0

    Nel mio caso:

    curlftpfs#nome:password@ftp://192.168.1.2 /media/ftp fuse rw,uid=500,user,noauto,allow_other 0 0

    o provato anche con:

    curlftpfs#nome:password@ftp://192.168.1.2 /media/ftp fuse rw,uid=1000,gid=1000,user,noauto,allow_other 0 0

    grazie

  6. rainbowbreeze says:

    potrebbe essere che versione dopo versione il programma abbia cambiato la sua sintassi…

    io comunque, quando lo usavo, garantisco che con la sintassi che ho scritto nel mio post tutto andava!

Leave a Reply