Sommario
Introduzione a rsync
In questo tutorial vi spiegherò come utilizzarersync (Remote Synchronization) per effettuare copie / backup su Linux.
rsynSi tratta di uno strumento di sincronizzazione delle cartelle disponibile sulla maggior parte delle distribuzioniLinuxe viene spesso utilizzato per eseguire il backup di file o siti web…
Eseguendo più volte lo stesso comando, ovvero con la stessa origine e la stessa destinazione,ryncrsync copierà solo i nuovi elementi e quelli che sono stati modificati.
Il vantaggio di utilizzare rsync è il supporto nativo di SSH, che consente di copiare su un server remoto o da un server remoto.
Utilizzo di rsync
Ora vedremo come funziona rsync.
Come la maggior parte dei programmi di copia, è necessario specificare una sorgente e una destinazione:
rsync -parameters source/ destination/I parametri più comunemente utilizzati sono:
- -a / –archive: consente di eseguire una copia ricorsiva preservando praticamente tutte le proprietà degli elementi copiati.
- -v / –verbose: consente di visualizzare lo stato di avanzamento
Per illustrare questo tutorial, salveremo la cartella/etc/ansible/ in un primo momento sullo stesso server in una cartella specifica/backup/ansible/ e, in un secondo momento, su un server remoto.
Ecco la cartella di origine:

Per eseguire il backup del file, ecco il comando da utilizzare:
sudo rsync -a /etc/ansible/ /backup/ansible/
Come si può notare, il comando non restituisce alcun output; se si desidera ottenere informazioni sul trasferimento, è necessario aggiungere il parametro
-v.
Se controllo nella cartella /backup/ansible/, vedo che le cartelle e i file sono stati copiati correttamente.

Come avete potuto notare nel comando per eseguire la copia, alla fine del percorso di origine c’è un
/.I due comandi seguenti non danno lo stesso risultato:
rsync -a /etc/ansible /backup/ansible/rsync -a /etc/ansible/ /backup/ansible/Il primo comando creerà la cartella di origine nella cartella di destinazione, il che significa che il backup si troverebbe nella seguente cartella:
/backup/ansible/ansible/mentre il secondo comando copierà il contenuto della cartella di origine nella cartella di destinazione.
Per visualizzare l’avanzamento e il risultato del comandorsync, è necessario aggiungere il parametro -v
sudo rsync -av /etc/ansible/ /backup/ansible/
Se eseguo nuovamente lo stesso comando, si può notare che non è stato copiato nulla poiché non è stata apportata alcuna modifica.

Nella presentazione vi ho detto chersync supporta nativamente SSH per eseguire il backup su un server remoto ed è proprio quello che faremo ora.
Il server remoto può essere sia la sorgente che la destinazione (potrebbe essere anche entrambi contemporaneamente, ma non l’ho provato!).
Ecco la sintassi per specificare il server remoto: <user>@<server>:/path/use/by/rsync/.
Per eseguire il backup della cartella /etc/ansible/ su un server remoto:
sudo rsync -avz /etc/ansible/ [email protected]:/backup/ansible/Al momento dell’esecuzione del comando, è necessario specificare la password dell’account sul server remoto.


Come potete vedere, ho aggiunto il parametro -z che consente di attivare la compressione durante il trasferimento.
L’account utilizzato per la connessione al server remoto deve disporre dei diritti di scrittura nella cartella di destinazione.
Sul server di destinazione, ritrovo correttamente i miei file e le mie cartelle che sono stati trasferiti tramite rsync.
Su Internet troverete anche questa sintassi di comando:
sudo rsync -e ssh -avz /etc/ansible/ [email protected]:/backup/ansible/Il parametro
-eviene aggiunto per indicare la shell remota (remote shell)
Se desiderate creare uno script di backup su un server remoto, sarà necessario configurare l’autenticazione SSH tramite chiave.
Parametri aggiuntivi per rsync
Per concludere questo primo tutorial dedicato arsync , ecco alcuni parametri utili:
--delete-after: questa opzione consente di eliminare i file nella cartella di destinazione che non sono più presenti nella sorgente--remove-source-files: elimina i file dalla sorgente dopo il trasferimento; equivale a un’operazione di taglia/incolla, le cartelle non vengono eliminate.--exclude: consente di escludere file o cartelle--exclude="*.log" --exclude="temp"; aggiungendo questo parametro al comando rsync, verranno esclusi tutti i file con estensione .log e le cartelle il cui nome contiene “temp”.
Ora avete tutte le informazioni necessarie per configurare script di backup utilizzando rsync.
Inoltre, ecco la pagina man dirsync con tutti i parametri disponibili.
In un progetto tutorial, vi spiegherò come eseguire backup differenziali e incrementali con rsync.
