Utilizzo di rsync per sincronizzare i file
Lo scopo di questo articolo è fornire una comprensione dell'uso di rsync strumento.
Rsync sta per "sincronizzazione remota" ed è uno strumento efficiente per copiare e sincronizzare file o directory in locale o in remoto. L'efficienza si ottiene spostando solo le parti dei file che sono state modificate, invece di copiare di nuovo tutto.
Utilizzo
Sintassi
Il rsync la sintassi è davvero semplice:
rsync [OPTIONS] SOURCE DESTINATION
Opzioni
Le seguenti sono alcune delle opzioni più utili da aggiungere a rsync comando:
-vo--verbose:il flag dettagliato mostrerà informazioni sullo stato di avanzamento dell'attività.-ao--archive:è uguale a -rlptgoD. Il flag di archivio imposta le opzioni più comuni invece di impostarle singolarmente.
Le seguenti sono le opzioni impostate con -a che possono anche essere impostati uno per uno:
-ro--recursive:ricorre nelle directory. Deve essere utilizzato quando è necessario copiare tutti i contenuti all'interno di una directory.-lo--links:copia i collegamenti simbolici come collegamenti simbolici, non copia il file a cui puntano per evitare loopback ad altre directory.-po--perms:conserva i permessi del file.-to--times:conserva i timestamp di modifica originali.-go--group:conserva la proprietà dei gruppi di file.-oo--owner:conserva i proprietari dei file.-D:conserva i file del dispositivo e i file speciali. Puoi usare le opzioni--devicese--specialsper raggiungere questo obiettivo.
Alcune altre opzioni che possono essere utilizzate sono:
-progress:mostra lo stato di avanzamento per file.--max-size=SIZE:evita il trasferimento di file più grandi della dimensione specificata.--min-size=SIZE:evita il trasferimento di file più piccoli della dimensione specificata.
Percorsi di origine e destinazione
È importante prendere in considerazione il modo in cui vengono specificati i percorsi di origine e di destinazione poiché una barra può modificare il comportamento.
Ad esempio, per copiare tutto all'interno di una directory chiamata in /home in un altro chiamato /new/destination/ il rsync corretto la sintassi sarebbe:
rsync -a /home/ /new/destination
Per copiare la directory in modo che una nuova cartella chiamata home viene creato anche nella directory di destinazione, la sintassi sarebbe:
rsync -a /home /new/destination
Nota che una singola barra dopo /home cambierà il risultato finale.
Utilizzo di rsync con un host remoto
Quando si ha accesso SSH a un host remoto è possibile utilizzare rsync con una sintassi davvero simile. Per copiare i contenuti da /home directory nel /home/new directory in un host chiamato REMOTE_HOST una spinta è necessaria l'operazione. La sintassi sarebbe:
rsync -a /home USER@REMOTE_HOST:/home/new
È possibile recuperare file da un host remoto sulla macchina locale usando rsync con un tiro operazione. La sintassi è simile a quella menzionata sopra, ma ora l'host remoto è l'origine:
rsync -a USER@REMOTE_HOST:/home/new /home
Conclusioni
Usando il rsync strumento è un modo affidabile ed efficiente per sincronizzare i file tra directory o host. Un comando di copia tradizionale non conserverebbe tutte le proprietà dei file e richiederebbe più tempo poiché copia tutto.
Con le opzioni citate in questo articolo è possibile determinare le proprietà che devono anche essere copiate e il rsync l'algoritmo ridurrà il tempo dell'attività copiando solo le differenze tra origine e destinazione.
Articoli correlati
- Copia file con SCP e Rsync
- Esegui il backup dei tuoi file con rsync