Comando Rsync per copiare e sincronizzare file e cartelle su Linux

In questo tutorial andremo a mostrare gli utilizzi più comuni del comando rsync su Linux.

Consideriamo di utilizzare una distribuzione linux CentOS 7 (per l’installazione consiglio di questo articolo) e installiamo il comando rsync:

yum install rsync

la sintassi del comando è

rsync opzioni sorgente destinazione

Per la copia di un file e/o di un archivio su una cartella utilizziamo il seguente comando

rsync -avh test1.txt test1.tar.gz test1/

sending incremental file list
test1.tar.gz
test1.txt

sent 243 bytes received 50 bytes 586.00 bytes/sec
total size is 112 speedup is 0.38

con la stessa linea di comando rsync è  sincronizza due cartelle

rsync -avh test1/ test2/

sending incremental file list
./
test1.tar.gz
test1.txt

sent 260 bytes received 53 bytes 626.00 bytes/sec
total size is 112 speedup is 0.36
You have new mail in /var/spool/mail/root

Nal caso in cui la copia deve essere fatta da un server locale verso un server remoto e viceversa (deve essere installato rsync su entrambi i lati)

rsync -avh test1/ root@10.1.1.1:/root/

rsync -avh  root@10.1.1.1:/root/test1/  /root/test1/

L’utilizzo di rsync è semplice ed intuitivo, è utilizzato nella maggior parte dei casi come utility di backup sia su macchina locale che remota.

Per problemi di sicurezza alle volte vincolati dai firewall, abbiamo a disposizione determinati protocolli per il trasferimento dei dati, tipo tramite SSH. Rsync è molto versatile, per esempio con il comando

rsync -avhe ssh --progress /root/test1 root@10.1.1.1:/root/

quindi con l’opzione -e possiamo definire il tipo di protocollo di trasmissione, in questo caso ssh ed inoltre inserendo –progress è possibile ottenere una reportistica dettagliata dei dati trasferiti.

Altra funzionalità interessante, è la possibilità nel trasferimento di poter  escludere/includere determinati file, in questo caso utilizzando le opzioni –include ‘qualcosa.qualcosa’ –exclude ‘qualcosa.qualcosa’,  ad esempio:

rsync -avze ssh --include '*.txt' --exclude '*.tar.gz' root@10.1.1.1:/root/test1/* /root/test1/

Il punto di forza del comando rsync è il trasferimento incrementale dei dati, infatti supponiamo il caso in cui, il server remoto a cui stiamo trasferendo i file sia irraggiungibile, quando il collegamento verrà ripristinato, rilanciando nuovamente il comando, l’rsync riprenderà la propria attività da dove è stato interrotto.

Potrebbero interessarti anche...

Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

Chiudi