Sincronizzare al volo con rsync

Capita a tutti di dover programmare un backup periodico da un server ad un altro e capita molto spesso, no?

Immaginiamo di volere effettuare ogni giorno ad una certa ora la copia completa di tutti i file contenuti in una certa directory da un server (che chiameremo A) ad un altro (che chiameremo B).

Una soluzione semplice consiste nel programmare la sincronizzazione da remoto mediante il software rsync. Il programma verrà lanciato dal server B, in maniera tale che il server A subisca passivamente il backup – in forma di prelievo di dati – senza possibili conseguenze gravi.

Presupponendo che su entrambi i server giri una splendida Debian GNU/Linux, ecco un metodo semplice ma efficace per ottenere il nostro scopo:

  1. Se non lo si è già fatto prima, installare il programma `rsync` sul server B:
    apt-get install rsync
  2. Generare sul server B le chiavi per l’accesso da remoto senza password:
    ssh-keygen -t dsa -b 1024 -f $HOME/$HOSTNAME-rsync-key
    Attenzione! Non inserire alcuna passphrase quando viene richiesto. Ne risulteranno due files il cui nome dipende dalla hostname del server su cui si sta lavorando, ad esempio:
    bidone-rsync-key
    bidone-rsync-key.pub
  3. Copiare sul server A la chiave pubblica così creata:
    scp $HOSTNAME-rsync-key.pub remoteuser@remotehost:~
    Ad esempio:
    scp bidone-rsync-key.pub ivan@192.168.1.97:~
  4. Sul server A aggiungi la chiave pubblica alla lista delle chiavi autorizzate:
    cat $HOSTNAME-rsync-key.pub >> ~/.ssh/authorized_keys
    Ad esempio:
    cat bidone-rsync-key.pub >> .ssh/authorized_keys
  5. A questo punto è già possibile effettuare il backup automatico di una directory dal server A al server B lanciando `rsync` via ssh senza bisogno di inserire la password di accesso remoto, come si vede nel seguente esempio:
    rsync -a --delete-after -e "ssh -i bidone-rsync-key" ivan@192.168.1.97:/home/ivan/fotografie /home/ivan/
    È sufficiente mettere in cron questo comando e il backup verrà effettuato automaticamente con la frequenza desiderata.

L’operazione può essere ripetuta per ottenere backup multipli su più server oppure più copie di backup sullo stesso storage, dipende solo da quali esigenze ci si presentano.

Questo è tutto, gente… Come sempre, con Linux si può fare qualsiasi cosa in maniera semplice e sicura!

Condivido

Leave a comment