Come fare il backup dei dati in un sistema Linux: rsync.

Finalmente hai deciso di installare Linux nel tuo PC, o unita’ server, per provarne la stabilita’, la sicurezza o semplicemente perche’ hai capito che, per gestire la rete del tuo ufficio, non occorre acquistare la classica licenza Microsoft. Per quanto riguarda la stabilita’, diciamocelo, sappiamo che con il “micromorbido” 2 + 2 non fa sempre 4.
Se per te il fatto di usare la Shell non e’ un’esperienza del tutto agghiacciante (spero proprio di no!), vorrei farti vedere come salvare i tuoi dati prima in locale e poi, molto meglio per ovvi motivi, in un unita’ remota.
La distro che andiamo ad usare e’ una Debian. Se non hai ancora installato il pacchetto sudo e il tuo utente non e’ tra i sudoers puoi loggarti come root e eseguire i seguenti comandi omettendo il comando sudo all’inizio della stringa.

Partiamo subito con l’installazione del pacchetto rsync, se non gia’ installato. Rsync e’ un comando che ti permette di sincronizzare files o cartelle seguendo questa semplice sintassi:
rsync opzioni sorgente destinazione
Per installare l’utility rsync quindi, nella shell digita il seguente comando:
formaggio@lnx:~$ sudo apt-get install rsync
Dopo l’inserimento della password del tuo utente il sistema operativo scarichera’ il pacchetto e lo installera’ per te.

Backup locale.
Ora supponiamo che tu voglia fare il backup dell’archivio “dati” contenuto nella directory /home (/home/dati), all’interno del quale si trovano molte altre cartelle e files, e salvarlo dentro la cartella “backup” che si trova sempre nella directory /home (/home/backup).

Il comando che andrai a digitare sara’:
rsync -avz /home/dati /home/backup/
le opzioni che ho usato, come puoi vedere, sono:

-a, modalita’ archivio;

-v, modalita’ verbosa;

-z, abilita la compressione;
Ti consiglio di usare l’opzione -a in quanto e’ ricorsiva (cartelle e sottocartelle), preserva i collegamenti, le permissioni, il timestamp (date di modifica dei file o cartelle), gruppo di appartenenza e utente creatore.

Quello che vedrai sara’ una cosa simile alla seguente:

 

formaggio@lnx:~$ sudo rsync -avz /home/dati /home/backup/

sending incremental file list

dati/

dati/prova1.txt

dati/prova2.txt

dati/prova3.txt

dati/test1/

dati/test1/ciao

dati/test1/ciao.txt

dati/test2/

dati/test3/

dati/test3/ciao.txt
sent 527 bytes received 154 bytes 1,362.00 bytes/sec

total size is 0 speedup is 0.00

 

Diamo un occhiata ai files e alle cartelle nella directory sorgente e a quelli che troviamo sincronizzati nella cartella di destinazione:

 

formaggio@lnx:~$ sudo ls -la /home/dati

total 20

drwxr-xr-x 5 root root 4096 May 9 00:40 .

drwxr-xr-x 5 root root 4096 May 9 00:54 ..

-rw-r--r-- 1 root root 0 May 9 00:39 prova1.txt

-rw-r--r-- 1 root root 0 May 9 00:39 prova2.txt

-rw-r--r-- 1 root root 0 May 9 00:39 prova3.txt

drwxr-xr-x 2 root relax 4096 May 9 00:40 test1

drwxr-xr-x 2 root ufficio 4096 May 9 00:40 test2

drwxr-xr-x 2 root root 4096 May 9 00:40 test3

 

formaggio@lnx:~$ sudo ls -la /home/backup

total 20

drwxr-xr-x 5 root root 4096 May 9 00:40 .

drwxr-xr-x 5 root root 4096 May 9 00:54 ..

-rw-r--r-- 1 root root 0 May 9 00:39 prova1.txt

-rw-r--r-- 1 root root 0 May 9 00:39 prova2.txt

-rw-r--r-- 1 root root 0 May 9 00:39 prova3.txt

drwxr-xr-x 2 root relax 4096 May 9 00:40 test1

drwxr-xr-x 2 root ufficio 4096 May 9 00:40 test2

drwxr-xr-x 2 root root 4096 May 9 00:40 test3
Come puoi vedere date, gruppi, proprietari dei file e delle cartelle sono rimasti gli stessi.
La prima volta che esegui il comando rsync la sincronizzazione puo’ durare piu’ o meno tanto in base alle dimensioni dell’archivio in quanto fara’ una copia completa di tutto l’archivio. Dalla seconda volta invece il comando rsync sincronizzera’ l’archivio in maniera incrementale e quindi copiera’ solo i files creati o modificati ex novo.

Backup remoto

 

Supponiamo che la l’unita’ da backuppare abbia come indirizzo di rete 192.168.0.1 e che l’unita’ dove vuoi salvare il tuo archivio abbia l’indirizzo di rete 192.168.0.2 .

Se desideri fare un backup in una unita’ remota, cosa che mi auguro vivamente, il comando da digitare e’ il seguente:

 

formaggio@lnx:~$ sudo rsync -avz -e ssh /home/dati pancetta@192.168.0.2:/home/backup/

 

Diamo un’occhiata alla sintassi:

 

sudo rsync -avz, la parte che abbiamo visto prima;

-e ssh, specifica che vogliamo usare ssh come shell remota;

/home/dati, la directory che vuoi backuppare.

 

pancetta@192.168.0.2:/home/backup/

 

pancetta, l’utente che userai per fare l’accesso all’unita’ remota;

@192.168.0.2, l’indirizzo IP dell’unita’ remota;

:/home/backup/, la directory di destinazione nell’unita’ remota.

 

La prima volta che lancerai questo comando il prompt ti chiedera’ di accettare (“yes”) il certificato e di inserire la password dell’utente remoto. L’utente remoto dovra’ avere i permessi di scrittura nella cartella specificata nel comando.

 

Ecco un esempio di output del comando appena suggerito:

 

The authenticity of host '192.168.0.2 (192.168.0.2)' can't be established.

ECDSA key fingerprint is ff:df:ee:45:41:06:c8:49:6a:7d:ac:84:19:d1:e3:d5.

Are you sure you want to continue connecting (yes/no)?

 

dopo aver digitato “yes”:

 

Warning: Permanently added '192.168.0.2' (ECDSA) to the list of known hosts.

pancetta@192.168.0.2's password:

 

digita la password dell’utente pancetta e premi invio:

 

sending incremental file list

dati/

dati/prova1.txt

dati/prova2.txt

dati/prova3.txt

dati/test1/

dati/test1/ciao

dati/test1/ciao.txt

dati/test2/

dati/test3/

dati/test3/ciao.txt
sent 528 bytes received 150 bytes 71.37 bytes/sec

total size is 0 speedup is 0.00

 

Come vedi l’output e’ praticamente lo stesso solo che invece di sincronizzare il tuo archivio in una cartella locale l’hai sincronizzato in una cartella di un’unita’ remota.

Nessun commento ancora

Lascia un commento

Unable to load the Are You a Human PlayThru™. Please contact the site owner to report the problem.