Il comando rsync è uno strumento potente e versatile progettato per un’efficiente sincronizzazione dei file per il tuo ambiente Linux. Che tu sia un amministratore di sistema, uno sviluppatore o solo un appassionato di Linux, sfruttare le funzionalità del comando rsync può migliorare notevolmente il tuo flusso di lavoro. In questo articolo, condividiamo con te alcuni esempi pratici di come utilizzare il comando rsync in Linux.
Come installare rsync su Linux
Prima di discutere gli esempi del comando rsync in Linux, impariamo prima come installarlo. Usa il comando per la tua distribuzione Linux per installare rsync:
sudo apt install rsync
sudo yum install rsync
Sintassi e opzioni del comando Rsync Linux
La semplice sintassi del comando rsync lo rende una scelta ideale per ogni tipo di utente. La sintassi per l’utilizzo del comando rsync in un comando Linux è:
rsync <options> <source_directory> <destination_directory>
Nella formula sopra, può essere
opzione | una descrizione |
---|---|
-z | Comprime i dati del file prima dell’invio |
-R | Cerca in modo ricorsivo i dati mancanti nella directory |
-UN | Entra in modalità archivio e include tutte le opzioni necessarie come, in modo ricorsivo, mantieni i permessi dei file, i collegamenti simbolici, la proprietà dei file e i timestamp dei file |
-Quinto | Elimina i file che non si trovano nel sistema del mittente |
-asciugare | Elimina i file che non si trovano nel sistema del mittente |
Esempi pratici del comando Rsync in Linux
Successivamente, diamo un’occhiata ad alcuni esempi di come utilizzare il comando rsync sui tuoi sistemi Linux.
1. Sincronizzare le directory su un file system locale
Questo scenario è uno dei casi d’uso più comuni per rsync. Diciamo che hai due cartelle duplicate sul tuo sistema con alcune differenze e devi sincronizzarle dopo averle confrontate. È possibile utilizzare il comando rsync come segue:
rsync <options> <source_directory> <destination_directory>
Ad esempio, se desideri sincronizzare la cartella di origine “src_local1” e la cartella di destinazione “dest_local1”:
rsync -a -v src_local1/ dest_local1/
Nota: se è necessario mantenere i permessi e la proprietà dei contenuti di una directory, utilizzare -p (mantieni i permessi) e -o (mantieni i proprietari).
2. Sincronizzare un file su un file system locale
Proprio come puoi sincronizzare due directory, puoi usare il comando rsync per sincronizzare anche singoli file. Per sincronizzare un file, utilizzare la seguente sintassi:
rsync <options> <source_file> <destination_file>
Ad esempio, per sincronizzare un file chiamato test.txt, usa questo comando:
rsync -a -v src_local1/test.txt dest_local1/
3. Sincronizzare file e directory da un sistema remoto al sistema locale
Con il comando rsync, puoi persino copiare/sincronizzare su un sistema remoto dal tuo sistema locale. Utilizzare questa sintassi per copiare i file da un sistema remoto:
rsync <options> <remote_username>@<remote_system_ip_address>:<remote_directory> <local_directory>
Ad esempio, se è necessario spostarsi dalla directory di origine remota denominata “src_remote” a “dest_local”, utilizzare il comando:
rsync -a -v [email protected]:~/src_remote1/ ~/dest_local/
4. Sincronizzare file e directory dal sistema locale a un sistema remoto
Proprio come puoi copiare i file da un sistema remoto al tuo computer locale, puoi anche utilizzare il comando rsync per sincronizzare i file dal tuo sistema locale a un sistema remoto a cui hai accesso:
rsync <options> <local_source> <remote_username>@<remote_destination_ip>:<remote_destination_directory>
Ad esempio, per copiare l’intera directory di origine locale “src_local” nella directory “dest_remote” sul sistema remoto, utilizzare questo:
rsync -a -v ~/src_local1/ [email protected]:~/dest_remote1/
5. Rimuovere i file di origine dopo la sincronizzazione
Se devi rimuovere i file di origine dopo averli sincronizzati con la destinazione, aggiungi il flag –remove-source-files in questo modo:
rsync <options> --remove-source-files <source_file> <destination_file>
Ad esempio, per eliminare il vecchio backup del file “test.txt” al termine della copia dal computer locale al sistema remoto:
rsync -a --remove-source-files ~/src_local1/test.txt [email protected]:~/dest_local1/
6. Escludere o includere solo determinati file/directory dalla copia/sincronizzazione con Rsync
Per escludere file/directory specifici di rsync dalla sincronizzazione, utilizzare il flag –Exclude in questo modo:
rsync <options> --exclude="<pattern_to_exclude>" <source> <destination>
E per includere tipi di file specifici con il comando rsync, usa il flag –include in questo modo:
rsync <options> --include="<pattern_to_include>" <source> <destination>
Ad esempio, per escludere tutti i file .txt e includere tutti i file .py all’interno della directory src_local1:
rsync -a -v --exclude=*.txt --include=*.py ~/src_local1/ [email protected]:~/dest_local1/
7. Imposta un limite per la dimensione del file per la sincronizzazione
Puoi anche specificare la dimensione massima del file che il comando rsync può trasferire utilizzando il flag –max-size:
rsync <options> --max-size="<size_limit" <source> <destination>
Ad esempio, se devi impostare il limite della dimensione del file per la copia a 1 GB:
rsync -a -v --max-size="1G" ~/src_local1/ ~/dest_local1/
8. Imposta il limite della larghezza di banda di sincronizzazione
Se ti trovi in una rete in cui sono presenti restrizioni sulla velocità di rete, puoi utilizzare il flag –bwlimit con il comando rsync. Assicurati di impostare la larghezza di banda in kilobit al secondo utilizzando questa formula:
rsync <options> --bwlimit=<bandwith_limit> <source> <destination>
Ad esempio, per impostare la larghezza di banda a 100 kbps, è possibile utilizzare il comando rsync come segue:
rsync -a -v --bwlimit="100" ~/src_local1/ ~/dest_local1/
9. Comprimi i dati e copiali nella destinazione
A volte ti trovi in una rete vulnerabile e devi inviare dati dal tuo sistema a un dispositivo di destinazione diverso, puoi comprimere i dati e quindi inviarli. Ciò garantirà che il totale dei dati trasferiti sia basso e possa funzionare anche a basse velocità. Per comprimere i dati, utilizzare il flag -z con il comando rsync Linux:
rsync <options> -z <source> <destination>
Ad esempio, per comprimere il file test.txt e inviarlo alla directory di destinazione remota ~/dest_remote1/:
rsync -a -v -z ~/src_local1/test.txt [email protected]:~/dest_remote1/
Nota: non utilizzare il flag -z quando si spostano i file in un sistema locale che può rallentare l’intero processo.
10. Visualizza l’attuale stato di avanzamento della conversione
A volte durante il trasferimento di file di grandi dimensioni utilizzando il comando rsync Linux, tutto ciò che puoi vedere è un indicatore lampeggiante che non ti dà idea di cosa stia realmente accadendo. Per mostrare la barra di avanzamento del trasferimento in corso, utilizzare il flag –progress con il comando rsync:
rsync -a --progress ~/src_local1/ ~/dest_local1/
Il comando Rsync Linux non funziona? Come adattarsi!
È frustrante quando devi trasferire alcuni file usando il comando rsync e ricevi degli errori. Bene, ecco alcuni suggerimenti comuni per la risoluzione dei problemi per risolvere il problema del comando rsync che non funziona:
1. Il comando rsync non è stato trovato
A volte, potresti incontrare il comando rsync non trovato errore nei sistemi Linux. Ciò potrebbe essere dovuto a un pacchetto rsync installato in modo errato, quindi assicurati di avere rsync installato sul tuo sistema Linux. In caso contrario, usa il comando appropriato per installare il pacchetto rsync sulla tua distribuzione.
2. Autorizzazione negata
In genere, questo errore viene visualizzato quando si tenta di scrivere in una directory in cui non si dispone dei permessi di scrittura. Consulta la nostra guida completa sulle autorizzazioni in Linux.
3. rsync non è riuscito a impostare gli orari su
Questo tipo di errore si verifica quando l’ora di modifica di file e directory differisce sia sul computer di origine che su quello di destinazione. Ciò porta a incoerenze nei tempi di modifica e alla fine a un errore.