backup su windows con rsync

Attraverso pochi semplici passi è possibile fare un backup di alcune cartelle (o dell’intero hard-disk) da un pc con installato Windows. La procedura è stata testata su Windows XP e su Windows Vista.

Prerequisiti:

  1. Un pc di cui si vuole fare il backup
  2. Connessione ad internet per scaricare il necessario
  3. Un server linux (o windows) con installato il server rsync su cui salvare il backup, accessibile dal pc o (preferibilmente) tramite rete locale o tramite internet, (in questo caso il backup richiederà molto tempo, se la quantità di dati da salvare è notevole e se la connessione non è più che veloce…)

Procedimento:

  1. scaricare il file setup.exe da cygwin dal pc con installato windows ed installarlo, per esempio, su “c:\cygwin”
  2. quando l’installazione arriva alla fase di scelta dei pacchetti, cercare “open-ssh” e “rsync” (si trovano nella categoria “NET”) e selezionarli
  3. quando viene proposto, scegliere di scaricare anche i pacchetti necessari a soddisfare le dipendenze
  4. terminata l’installazione, cliccare con il tasto destro su “Computer (o Risorse del Computer)” -> linguetta “Impostazioni avanzate” -> “Variabili d’ambiente”
  5. se esiste già la variabile PATH, modificarne il valore aggiungendo “c:\cygwin\bin” preceduto da un “;” per concatenarlo con quello che c’è già; se la variabile PATH non esiste, aggiungerla con il valore “c:\cygwin\bin”
  6. aggiungere anche la variabile “CYGWIN” con valore “ntsec”
  7. aprire il terminale cygwin e digitare:
    ssh-keygen
    e dare invio alle due domande successive. A questo punto è stata generata la coppia di chiavi pubblica e privata che verranno utilizzate per collegarsi al server su cui verrà salvato il backup
  8. sempre nel terminale di cygwin, eseguire:
    cat /home/[nome_utente]/.ssh/idrsa.pub
    per visualizzare la chiave pubblica generata al punto 7, che deve essere trasferita in qualche modo nel server (p. es. copiando ed inviandola al server via email)
  9. inserire la chiave pubblica generata al punto 8 nel file delle chiavi pubbliche a cui è consentito l’accesso come root sul server che, su linux, dovrebbe essere:
    /root/.ssh/authorized_keys

A questo punto sarà possibile accedere dal pc al server (tramite console) senza alcuna richiesta di password. Questo permetterà di predisporre una procedura automatica e periodica di backup dal pc windows al server tramite rsync.

Un modo semplice per implementare un backup automatico può essere quello di creare sul pc un file batch (p. es. backup.bat) contenente una riga (come la seguente, in cui bisogna adattare ai propri scopi il percorso della cartella di origine, l’indirizzo ip del server e il percorso sul server dove verrà conservato il backup) per ciascuna delle cartelle di cui si vuole avere una copia sul server:

[bash]rsync -az --chmod=ug+rwx,o+rx "/cygdrive/c/Documents and Settings/Pippo/Documenti" root@192.168.1.200:/var/backups/Pippo/Documenti/[/bash]

e creare un’operazione pianificata che esegua questo file periodicamente (p. es. una volta a settimana, in un orario in cui il pc è molto probabilmente acceso)

Con i parametri di rsync utilizzati nell’esempio, il backup sarà di tipo incrementale, quindi solo la prima volta richiederà parecchio tempo, a seconda delle dimensioni della cartella, mentre le volte successive verranno trasferiti solo i nuovi files o quelli modificati, ed i files verranno trasferiti attivando la compressione, minimizzando quindi la banda necessaria. Attivare la compressione, nel caso in cui il server si trova in rete locale con il pc ma è remoto, permette di avere un grande risparmio in termini di tempo.