Punto informatico Network
Canali
Sincronizza, sincronia, sincronizzazione, cartella, folder, directory

Realizzare un backup da remoto con rsync (Windows, Mac e Linux)

22/06/2010
- A cura di
Zane.
Tecniche Avanzate - Se volete creare una copia di sicurezza periodica dei documenti salvati su un server remoto, rsync è quello che fa per voi. Il programma non è semplicissimo da usare, ma il premio è una procedura del tutto automatica e super-sicura.

Tag

Passa qui con il mouse e visualizza le istruzioni per utilizzare i tag!

copia (1) , sync (1) , backup (1) , remoto (1) , sincronia (1) , sincronizzazione (1) , sincronizzare (1) , rsync (1) , copiare (1) .

Valutazione

  •  
Voto complessivo 4 calcolato su 19 voti

rsync --recursive --compress --progress -vv --delete --exclude='*.serialized' --exclude='.svn' --exclude='tmp/' root@mioserver.com:/usr/percorso/file/remoti/ /cygdrive/c/percorso/cartella/backup/locale/

(nota: il software è estremamente versatile, motivo per cui prevede molti parametri differenti. Quella fornita è una semplice impostazione che consente di raggiungere l'obbiettivo in oggetto: realizzare il backup di una cartella archiviata su un server remoto. Per l'elenco completo delle opzioni supportate da rsync, si veda la documentazione ufficiale).

Questo il significato dei vari parametri:

  • --recursive: indica ad rsync di copiare non solo i file contenuti della cartella remota indicata, ma anche tutte le sottocartelle ed il relativo contenuto
  • --compress: applica la compressione "al volo" ad alcuni file, riducendo un po' il consumo di banda (.zip, .mp3 ed altri formati già compressi vengono trasferiti così come sono, poiché non vi sarebbero benefici)
  • --progress -vv: mostra alcune informazioni addizionali durante il trasferimento, fra cui il nome del file, la durata del trasferimento, la velocità media eccetera
  • --delete: induce rsync a cancellare tutti i file nel percorso di destinazione (quello locale, nel nostro caso) che non siano presenti nella sorgente. Utilissimo per mantenere "fotocopie" sempre super-aggiornate, e senza file obsoleti
  • --exclude='*.serialized' --exclude='.svn' --exclude='tmp/': indica ad rsync di escludere dal fotocopiaggio tutti i file e le cartelle che presentino la stringa .serialized nel nome, tutti i file e le cartelle di nome .svn e tutte le cartelle di nome tmp
  • root: è il nome utente da utilizzare per l'accesso al server remoto
  • mioserver.com: è l'indirizzo del server remoto
  • /usr/percorso/file/remoti/: quale cartella del server remoto volete fotocopiare? indicatelo qui. Ricordate di concludere il percorso con una barra (/), oppure vi ritroverete con un livello gerarchico aggiuntivo in locale. In caso dobbiate gestire degli spazi nel percorso, racchiudete tutto fra apice e doppioapice ('"): '"/usr/percorso file remoti/"'
  • /cygdrive/c/percorso/cartella/backup/locale/: questa è la parte un pochino meno immediata. Poiché si "passa tramite Cygwin" (gli esperti mi perdonino l'orrore tecnico), non potete utilizzare il percorso locale della cartella nel modo abituale, ovvero c:\percorso\cartella\backup\locale. È invece necessario iniziare il percorso con il prefisso /cygdrive/, seguito dal nome dell'unità in minuscolo e senza i due punti (c) e quindi il resto dellla gerarchia, con le barre rovesciate. In caso dobbiate gestire degli spazi nei nomi, racchiudete tutto fra doppioapice ("): "/cygdrive/c/mia cartella di backup"

Se, ad esempio, volete copiare nella directory locale C:\Backup\Sito la cartella remota di default in cui Ubuntu Server conserva le pagine web, impartite rsync --recursive --compress --progress -vv --delete root@mioserver.com:/var/www/ /cygdrive/c/Backup/Sito/

A meno di errori o problemi, dovreste ottenere una schermata come questa

Rsyncing.jpg

Notate che, poiché è stato specificato il parametro --delete, ogni file successivamente cancellato dal server verrà rimosso anche dalla copia locale alla prossima sincronizzazione.

Inserire il comando in un file batch

Digitare ogni volta un comando così lungo è ovviamente di una scomodità unica: una prima idea potrebbe essere quella di salvare il tutto in un file batch, da avviarsi poi tramite Operazioni pianificate oppure con un semplice doppio click.

Copia-incollate il comando in una istanza del blocco note, quindi selezionare File -> Salva con nome. Individuate una posizione a piacere sul vostro disco, specificate il nome dello script seguito dall'estensione .bat ed avete concluso

Batch.jpg

Uno script più articolato

Quanto visto fino ad ora è un'ottima metodologia per creare copie di backup da remoto, ma ha un limite: in caso un file venisse cancellato erroneamente sul server, l'eliminazione si propagherebbe anche alla copia locale alla sincronizzazione successiva, impedendo il recupero del documento in questione.

Un'idea per garantire la massima sicurezza ai dati potrebbe essere quella di creare sempre una copia speculare dei dati remoti come visto fino ad ora, ma affiancare anche uno "storico" delle fotocopie precedenti.

Il modo più semplice di farlo è creare manualmente un archivio compresso della cartella locale prima di aggiornare. Ma la cosa finirebbe ben presto per annullare il vantaggio dell'automatizzazione completa concesso da rsync.

Propongo quindi in allegato all'articolo uno script da utilizzarsi a mo' di modello che, combinando rsync alla versione a riga di comando di 7-Zip (che deve quindi essere installato a parte), si occupa di tutto quanto

MLIShot_2.jpg

Lo script, ribadisco il concetto, non è "pronto all'uso": deve essere adattato manualmente alle singole situazioni, ed è quindi rivolto agli utenti con un livello di competenza tecnica appropriato.

Aggiungo solamente che, una volta perfezionato a dovere, lo script può essere eseguito tramite l'eseguibile bash.exe veicolato dal pacchetto Cygwin come segue: C:\Cygwin\bin\bash.exe -li EseguiBackupRemoto_rsync.sh.

Buon backup remoto a tutti.

Iscriviti gratuitamente alla newsletter, e ti segnaleremo settimanalmente tutti i nuovi contenuti pubblicati su MegaLab.it!
Pagina precedente
Realizzare un backup da remoto con rsync (Windows, Mac e Linux)

 

Segnala ad un amico

Tuo nome Tuo indirizzo e-mail (opzionale)
Invia a:
    Aggiungi indirizzo email
    Testo

    © Copyright 2020 BlazeMedia srl - P. IVA 14742231005

    • Gen. pagina: 0.21 sec.
    •  | Utenti conn.: 50
    •  | Revisione 2.0.1
    •  | Numero query: 42
    •  | Tempo totale query: 0.05