Ci sono disponibili diverse soluzioni, alcuni dei quali eccellenti, altri meno. Quale sistema sia il migliore dipende dal modus operandi desiderato: attivo o passivo.
Nella modalità attiva il server invia a un'ora specifica tutti i file a un altro computer, tramite rsync, ftp o simile protocollo. Ha il vantaggio che di regola non è necessario modificare le regole del firewall. Lo svantaggio sta però nel fatto che raramente sarà possibile inviare dati a un altro server remoto, perché sono "chiusi".
Prima di tutto bisogna installare sul server destinazione un server rsync. Nei sistemi Linux rsync è di regola presente. Per i sistemi Windows è necessario installarsi DeltaCopy, come illustrato in questo articolo.
Apriamo ora il file C:\DeltaCopy\deltacd.conf (/etc/rsyncd.conf in Linux). All'inizio del file è necessario impostare le configurazioni globali, più in basso quelle di un'area specifica, ad esempio:
Linux:
uid = nobody
gid = nobody
use chroot = yes
max connections = 4
syslog facility = local5
pid file = /var/run/rsyncd.pid
hosts allow = 192.168.0.1 192.168.0.2 192.168.0.3 1.2.3.4
[backup]
uid = root
gid = root
path = /backup
comment = Backup Area
read only = false
Windows:
use chroot = false
hosts allow = 192.168.0.1 192.168.0.2 192.168.0.3 1.2.3.4
[backup]
path = /cygdrive/c/Backup
comment = Backup Area
read only = false
In Windows, il percorso assoluto viene indicato da /cygdrive/c/Backup, dove /c/ indica il disco fisso (reale o di rete); se si tratta di un percorso di rete, è necessario creare un disco di rete in gestione rete. In Linux, è necessario fare un mount esplicito quando si tratta di una cartella di rete, in quanto non è possibile usare la sorgente e destinazione remoti. Vedremo in articoli futuri, come realizzare questi dischi di rete e mount.
Ora che abbiamo impostato l'accesso all'area di backup, vediamo come realizzarlo dal server sorgente. Dalla riga di comando scriviamo uno dei seguenti comandi, lievemente diversi fra di loro a secondo le caratteristiche desiderate.
Backup cumulativo
Linux:
rsync -rltDvWz --force /var/www 5.6.7.8::backup
Windows:
rsync -rltDvWz --force /cygdrive/c/inetpub 5.6.7.8::backup
rsync -rltDvWz --force /cygdrive/d/xampp 5.6.7.8::backup
Backup differenziale (mirror)
Linux:
rsync -rltDvWz --force --delete /var/www 5.6.7.8::backup
Windows:
rsync -rltDvWz --force --delete /cygdrive/c/inetpub 5.6.7.8::backup
rsync -rltDvWz --force --delete /cygdrive/d/xampp 5.6.7.8::backup
Nota: non si devono eseguire tutti i comandi di seguito, ma soltanto uno, e modificarlo secondo le necessità. E' buona pratica di creare a destinazione per ogni backup una configurazione dedicata, in modo da evitare incidenti:
Linux:
rsync -rltDvWz --force --delete /var/www 5.6.7.8::www
Windows:
rsync -rltDvWz --force --delete /cygdrive/c/inetpub 5.6.7.8::inetpub
rsync -rltDvWz --force --delete /cygdrive/d/xampp 5.6.7.8::xampp
Questi innocenti esempi fanno un sacco di cose utili. Prima di tutto, le opzioni forniscono un minimo di informazione visiva (v), assieme alle caratteristiche indispensabili del trasporto efficiente dei dati (z), e l'aggiornamento dei file e cartelle mancanti (resto delle opzioni) dalla cartella sorgente a server destinazione. Nota che l'area destinazione è definita nei rispettivi file di configurazione, per cui non deve essere specificata in dettaglio qui. Inoltre è buona pratica di tenere l'area backup/mirror inaccessibile (dal web) per evitare incidenti causa malconfigurazione.
All'avvio di uno dei comandi illustrati, i computer si scambiano per primo la lista dei file e la destinazione viene aggiornata con i file e cartelle mancanti e saranno rimossi anche file e cartelle mancanti nel sistema sorgente. Poi, il sistema sorgente comprime i file, li invia e il sistema destinazione li decomprime e posiziona nella posizione corretta.
I sistemi Windows creano i diritti di utenti particolari, che non sono accessibili facilmente, ma il programma di backup di sistema (backup.exe) è comunque in grado di leggerli senza alcun problema. Per poter navigare nelle cartelle con l'Explorer, è necessario ricopiare i diritti e gli utenti dalla cartella superiore ogni volta che si deve accedere. E' decisamente meglio utilizzare un'operazione pianificata per zippare i contenuti di queste cartelle con l'utente sistema e consultarli successivamente.
Si può anche provare l'utilizzo delle opzioni esplicite, che forse non impostano diritti particolari. Il forse è dovuto al fatto che ogni sistema operativo si comporta in modo diverso e non ho avuto occasione di provare tutti in modo esauriente. Ad esempio:
rsync -v -r -t --force --delete -z /cygdrive/c/inetpub 5.6.7.8::inetpub