Introduzione
Rsync è un leggero e versatile strumento per il backup. Può eseguire backup in locale o in remoto ed è molto efficiente data la caratteristica di effettuare la salvataggio, e quindi l'eventuale invio tramite network, esclusivamente dei file che hanno subito modifica rispetto all'ultima operazione di copia, rendendolo quindi ideale per i backup incrementali.
Rsync è uno strumento a [:AmministrazioneSistema/RigaDiComando:riga di comando] ma è possibile utilizzare diverse GUI per le quali si rimanda alle rispettive guide:
Grsync: semplice interfaccia grafica che permette l'utilizzo delle funzioni principali di Rsync
Sbackup: è un applicazione grafica, basata su Rsync, che permette di effettuare un backup del sistema in modo abbastanza facile e del tutto funzionale, per informazioni consultare [:AmministrazioneSistema/BackupDelSistema/BackupConSbackup:relativa guida].
Back in time: è un semplice strumento che utilizza Rsync per compiere backup incrementali, per informazioni consultare [:GiuseppeTerrasi/Prove7:relativa guida].
[http://live.gnome.org/DejaDup Déjà Dup]: un interfaccia molto semplice per effettuare backup con Rsync. Supporta la crittografia
Programmi che utilizzano lo stesso algoritmo di Rsync:
rsnapshot: è un'applicazione a [:AmministrazioneSistema/RigaDiComando:riga di comando] che consente di pianificare backup differenziali di filesystem locali o remoti, per informazioni consultare la [:AmministrazioneSistema/BackupDelSistema/Rsnapshot:relativa guida].
Duplicity: effettua backup di cartelle producendo archivi compressi in formato .tar e salvandoli su destinazioni locali io remote. Utilizza [:Sicurezza/GnuPg:GPG] per cifrare o firmare gli archivi in modo da renderli sicuri da tentativi di spionaggio o di modifica. Per informazioni consultare la [:GiuseppeTerrasi/Prove12:relativa guida].
Prima di cominciare
Per eseguire correttamente un backup bisogna scegliere correttamente la cartella di destinazione della copia. Affinché i permessi possano essere conservati in maniera corretta è necessario che questa si trovi su un filesystem in grado di gestire i permessi Unix e Unix-like, evitare quindi i filesystem dei sistemi NT, quali ntfs e fat.
Installazione
Rsync è installato di base su Ubuntu, tuttavia è preferibile controllare che i pacchetti: [apt://rsync rsync], [apt://xinetd xinetd] e [apt://ssh ssh] siano [:AmministrazioneSistema/InstallareProgrammi:installati] prima di procedere col backup.
Eseguire un backup
Backup in locale
È possibile eseguire un backup in rete come se fosse un backup in locale semplicemente utilizzando [:Server/Samba:Samba] montando la directory condivisa nel PC da cui si sta operando. È comunque consigliabile per la propria sicurezza utilizzare questo metodo solo per computer connessi in reti private e non in internet.
Per eseguire un backup in locale è sufficiente digitare il seguente comando in una finestra di terminale:
sudo rsync -azvv /percorso/cartella1 /percorso/cartella2
prestando attenzione a sostituire «/percorso/cartella1» con il percorso della cartella di origine e «/percorso/cartella2» con il percorso della cartella di destinazione.
Le opzioni utilizzate in questo caso sono:
-a: copia ricorsivamente e conserva i permessi e le date dei file.
-z: comprime i dati.
-vv: abilita la modalità verbose.
È possibile fare in modo che rsync cancelli nella cartella di destinazione i file non più presenti nella cartella di origine aggiungendo l'opzione --delete ottenendo quindi un backup incrementale completo:
sudo rsync --delete -azvv /percorso/cartella1 /percorso/cartella2
È anche possibile escludere dal backup alcuni file grazie all'opzione --exclude, ad esempio i file nascosti:
sudo rsync --exclude=".*/" --delete -azvv /percorso/cartella1 /percorso/cartella2
Per ulteriori opzioni è possibile consultare il manuale di rsync:
man rsync
Backup in rete
Per eseguire un backup in rete è sufficiente digitare questo comando in una finestra di terminale:
sudo rsync --delete -azvv -e ssh /percorso/cartella1 utenteremoto@hostremoto:/percorso/cartella2
sempre prestando attenzione a sostituire «/percorso/cartella1» con il percorso della cartella di origine, «/percorso/cartella2» con il percorso della cartella di destinazione e «utenteremoto@hostremoto» con l'indirizzo dell'utente remoto.
In questo caso l'opzione utilizzata, oltre a quelle precedentemente descritte comuni al backup in locale, è:
-e: specifica la shell remota da utilizzare, in questo caso ssh.
Rsync Daemon
In alternativa a ssh è possibile utilizzare Rsync Daemon per effettuare i backup in rete. Il vantaggio di utilizzare Rsync Daemon è quello di poter effettuare un backup di un intero sistema senza abilitare il login di root e quindi mantenere una maggiore sicurezza.
Per utilizzare Rsync Daemon procedere come segue:
[:AmministrazioneSistema/InstallareProgrammi:Installare] il pacchetto [apt://xinetd xinetd].
Per abilitare l'utilizzo di xinetd da parte di rsync aprire con un [:Ufficio/EditorDiTesto:editor di testo] e con i [:AmministrazioneSistema/Sudo:privilegi di amministrazione] il file /etc/default/rsync. Cercare la seguente riga:
RSYNC_ENABLE=false
e modificarla come segue:
RSYNC_ENABLE=inetd
salvare e chiudere l'editor.Per avviare rsync tramite xinetd creare con un [:Ufficio/EditorDiTesto:editor di testo] e con i [:AmministrazioneSistema/Sudo:privilegi di amministrazione] il file /etc/xinetd.d/rsync e incollare il seguente contenuto:
service rsync { disable = no socket_type = stream wait = no user = root server = /usr/bin/rsync server_args = --daemon log_on_failure += USERID }
Per configurare rsync per la modalità daemon creare con un [:Ufficio/EditorDiTesto:editor di testo] e con i [:AmministrazioneSistema/Sudo:privilegi di amministrazione] il file /etc/rsyncd.conf e incollare il seguente contenuto:
max connections = 2 log file = /var/log/rsync.log timeout = 300 [share] comment = Public Share path = /home/share read only = no list = yes uid = nobody gid = nogroup auth users = utente secrets file = /etc/rsyncd.secrets
prestando attenzione a sostituire la parola «utente» col nome dell'utente da autorizzare all'utilizzo di rsync.
Per impostare la password creare con un [:Ufficio/EditorDiTesto:editor di testo] e con i [:AmministrazioneSistema/Sudo:privilegi di amministrazione] il file /etc/rsyncd.secrets e scrivere quanto segue:
utente:password
prestando attenzione a sostituire «utente» col nome utente utilizzato in precedenza e «password» con la password utilizzata per il login in macchina remota.Per assegnare i giusti permessi al file precedentemente creato aprire un terminale e digitare il seguente comando:
sudo chmod 600 /etc/rsyncd.secrets
Infine riavviare xinetd per applicare le modifiche digitano:
sudo /etc/init.d/xinetd restart
Per controllare il buon esito delle operazioni è possibile digitare il seguente comando:
sudo rsync utente@host::share
sostituendo «utente» con il nome utente in uso e «host» con il nome host in uso.Il risultato del precedente comando dovrebbe essere simile a questo:
drwxr-xr-x 4096 2006/12/13 09:41:59 . drwxr-xr-x 4096 2006/11/23 18:00:03 folders
Ulteriori risorse
[http://samba.anu.edu.au/rsync/ Sito web rsync]
[http://everythinglinux.org/rsync/ Guida su everythinglinux in inglese]
[https://help.ubuntu.com/community/rsync Guida sul wiki ubuntu inglese]
[http://samba.anu.edu.au/ftp/rsync/rsync.html man di rsync]