Guida verificata con Ubuntu: 20.04
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
Rsync è un leggero e versatile strumento per il backup. Permette di eseguire backup incrementali (rileva e salva i soli file modificati o aggiunti rispetto all'ultima operazione di copia, evitando di eseguire un backup completo), locali o in remoto.
Prima di cominciare
Rsync è installato di base su Ubuntu, tuttavia è preferibile controllare che i pacchetti: rsync, xinetd e ssh siano installati prima di procedere col backup.
È necessario che la cartella di destinazione si trovi su un filesystem in grado di gestire i permessi di tipo Unix-like (evitare quindi i filesystem di sistemi NT, quali NTFS e FAT).
- Per backup locali xinetd e ssh non sono indispensabili.
Eseguire un backup
Backup in locale
Per eseguire un backup in locale è sufficiente digitare il seguente comando in una finestra di terminale:
sudo rsync -av /percorso/cartelladiorigine /percorso/cartelladidestinazione
prestando attenzione a sostituire «/percorso/cartelladiorigine» con il percorso della cartella contenente i dati di cui vogliamo fare il backup e «/percorso/cartelladidestinazione» con il percorso della cartella di destinazione del backup stesso.
Le opzioni utilizzate in questo caso sono:
-a: copia ricorsivamente e conserva i permessi e le date dei file.
-v: abilita la modalità verbose (mostrando le operazioni in corso ed eventuali errori).
È possibile eseguire un backup in rete come se fosse un backup in locale semplicemente utilizzando Samba e montando la cartella condivisa nel computer 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.
È 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 -av /percorso/cartelladiorigine /percorso/cartelladidestinazione
È anche possibile escludere dal backup alcuni dati usando l'opzione --exclude.
Ad esempio, per escludere i file e le cartelle nascoste:
sudo rsync --exclude=".*" --delete -av /percorso/cartelladi origine /percorso/cartelladidestinazione
Per ulteriori opzioni è possibile consultare il manuale di rsync:
man rsync
Grsync
Grsync è una semplice interfaccia grafica per rsync. Permette solo le operazioni più semplici con le opzioni base ma per backup di cartelle locali con destinazione su dischi locali è sufficiente. Per maggiori informazioni consultare la relativa guida.
Backup in rete
Per eseguire un backup in rete è sufficiente digitare questo comando in una finestra di terminale:
sudo rsync --delete -azv -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 le opzioni utilizzate, oltre a quelle precedentemente descritte, sono:
-z: comprime i dati durante il trasferimento.
-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 utilizzare l'utente root e quindi mantenere una maggiore sicurezza.
Per utilizzare Rsync Daemon procedere come segue:
Installare il pacchetto xinetd.
Per abilitare xinetd da parte di rsync aprire con un editor di testo e con i 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 di testo.Per avviare rsync tramite xinetd creare con un editor di testo e con i privilegi di amministrazione il file /etc/xinetd.d/rsync e inserire 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 editor di testo e con i 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 editor di testo e con i 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 in una finestra di terminale il seguente comando:
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