Effettuare un backup programmato dei file PST di Outlook è notoriamente complesso, a meno che non utilizziate costosi software di terze parti.
In questo articolo adotteremo una soluzione efficace ed opensource per schedulare un backup incrementale dei PST di Outlook.
Outlook memorizza tutte le cartelle dei messaggi, contatti, e calendario in un unico grande file con estensione PST. Ogni volta che si apre il programma o si riceve un messaggio, Outlook modifica tale file. Quindi il software di backup “pensa” che sia necessaria una nuova copia dell’intero file. Visto che il PST raggiunge facilmente le dimensioni di svariati gigabyte, una normale backup effettuato con tool tipo robocopy o xcopy, risulta poco efficace, infatti la ricezione di un solo messaggio comporta la copia di molti gigabyte.
Una strategia efficiente può essere adottata grazie allo strumento Rsync, che ci consentirà di effettuare backup incrementali, copiando soltanto i bit differenti.
Il potente algoritmo di Rsync, sincronizza file e cartelle da una posizione all’altra minimizzando il trasferimento di dati utilizzando quando possibile la codifica delta. Questo strumento è nativo Unix, per utilizzarlo in ambiente Windows sfrutteremo il pacchetto Cygwin.
Scenario
Installeremo Rsync server sulla destinazione dei backup, nei client andremo a distribuire uno script che utilizza i binary di cwRsync per effettuare la sincronizzazione.
Configurazione del Server
Installiamo il pacchetto cwRsync.
Dopo averlo installato, configuriamo il servizio con avvio automatico e facciamolo partire. Se non ci sono errori andiamo ad editare il file rsyncd.conf posizionato in
%programfiles%\ICW
Il file dovrà somigliare a questo:
#Utente che esegue la sincronizzazione
uid = administrator
use chroot = false
strict modes = false
#Indirizzi ip consentiti con notazione CIDR a.b.c.d/numeroBit
hosts allow = *
#nome e posizione del file di log
log file = rsyncd.log
readonly = false
gid = 0
# Definizione dei moduli
# Per la definizione dei path dobbiamo utilizzare la notazione cygwin
#Quindi la directory H:\utenti diventerà /cygwin/h/utenti
#
[backup_destination]
path = /cygdrive/h/utenti
read only = false
transfer logging = yes
Ora riavviamo il servizio per rendere effettive le modifiche.
Configurazione dello script per i client
Scarichiamo il pacchetto RsyncBin.zip ed estraiamolo in c:\backup\rsyncbin
Creiamo un nuovo file batch in c:\backup\ e compiliamolo come segue:
#si posiziona nella directory dove ci sono gli eseguibili di rsync
cd C:\backup\rsyncbin\
#Controlla se esiste la posizione di default dei file PST, in caso affermativo la converte in formato cygwin e scrive il risultato in un file temporaneo
if exist “%userprofile%\Impostazioni locali\Dati applicazioni\Microsoft\Outlook\” cygpath.exe “%userprofile%\Impostazioni locali\Dati applicazioni\Microsoft\Outlook” >tmp
if exist “%userprofile%\AppData\Local\Microsoft\Outlook” cygpath.exe “%userprofile%\AppData\Local\Microsoft\Outlook” >tmp
#Imposta la variabile “rvar” con il percorso precedentemente trovato
set /p rvar=<tmp
#esegue rsync
rsync -r –delete-after –stats “%rvar%” administrator@10.0.0.254::backup_destination/%username%/backup>>c:\backup\rsync.log
Descriviamo i parametri utilizzati per il comando rsync:
-r = Ricorsivo, copia anche le sottodirectory
-delete-after = Il server cancella i file di troppo dopo aver eseguito la copia
-stats = mostra le statistiche
“%rvar%” = è la variabile che abbiamo definito, rappresenta la sorgente
administrator@10.0.0.254 = Il nome utente definito in rsyncd.conf con l’IP del server
backup_destination = Il modulo che abbiamo definito, ovvero la destinazione
%username%/backup = aggiunge alla destinazione il NomeUtente\backup, in modo da avere un unico contenitore con annidate le varie cartelle degli utenti che effettuano il backup.
cd C:\backup\rsyncbin\ if exist "%userprofile%\Impostazioni locali\Dati applicazioni\Microsoft\Outlook\" cygpath.exe "%userprofile%\Impostazioni locali\Dati applicazioni\Microsoft\Outlook" >tmp if exist "%userprofile%\AppData\Local\Microsoft\Outlook" cygpath.exe "%userprofile%\AppData\Local\Microsoft\Outlook" >tmp set /p rvar=<tmp rsync -r --delete-after --stats "%rvar%" administrator@10.0.0.254::backup_destination/%username%/backup>>c:\backup\rsync.log
Il log di backup somiglierà a questo:
Una volta configurato lo script abbiamo la nostra soluzione di backup incrementale di Outlook, non ci resta che testarla e distribuirla via Group Policy.