15 Esempi di Rsync

15 Esempi Di Rsync



Il trasferimento di file da una posizione a un'altra è un'attività molto comune per l'utente Linux. Molte opzioni sono disponibili in Linux per eseguire questa operazione; 'rsync' è uno di questi. La forma completa di 'rsync' è 'Remote Sync'. È uno strumento di sincronizzazione molto utile per copiare i file e le cartelle da un sistema a un altro sistema in locale o in remoto. Ha molti più vantaggi rispetto agli altri strumenti di sincronizzazione. Questo strumento è installato in Linux per impostazione predefinita. Quindi, l'utente non ha bisogno di installarlo. I vantaggi e gli usi del comando “rsync” sono mostrati in questo tutorial utilizzando 15 semplici esempi.

Vantaggi del comando 'Rsync'.

  1. È più veloce degli altri strumenti perché copia solo quei file dalla posizione di origine alla posizione di destinazione che sono stati modificati o non esistono nella posizione di destinazione.
  2. Supporta il trasferimento incompleto.
  3. Richiede meno larghezza di banda perché comprime i dati durante la trasmissione.
  4. Diminuisce l'overhead della trasmissione perché i dati meno importanti possono essere trasmessi senza crittografia.

Sintassi

La sintassi del comando “rsync” è la seguente:

rsync [Opzione] Destinazione sorgente

Qui, i percorsi di origine e destinazione possono essere locali o remoti. Diversi tipi di opzioni possono essere utilizzati con questo comando per scopi diversi.







Opzioni utili del comando 'Rsync'.

Alcune opzioni comunemente utilizzate del comando 'rsync' sono spiegate di seguito:



Opzione Scopo
-Con Viene utilizzato per comprimere i dati durante la trasmissione.
-R Viene utilizzato per sincronizzare i dati in modo ricorsivo senza mantenere alcun permesso di file.
-UN Viene utilizzato per sincronizzare i dati in modo ricorsivo mantenendo tutti i permessi dei file.
-B Viene utilizzato per mantenere un backup dei dati durante la trasmissione.
-In Viene utilizzato per visualizzare l'output in formato dettagliato.
-P Viene utilizzato per visualizzare l'avanzamento del trasferimento.
-N Viene utilizzato per verificare se la sincronizzazione funziona o meno prima di trasferire i file o le cartelle.

Elenco di 15 esempi di 'Rsync'.

  1. Trasferisci un singolo file e cartella in locale
  2. Trasferisci più file e cartelle in locale
  3. Trasferisci un singolo file e cartella in remoto
  4. Trasferisci più file e cartelle in remoto
  5. Visualizza l'avanzamento del trasferimento
  6. Comprimi i dati durante il trasferimento
  7. Trasferimento con il limite di larghezza di banda
  8. Trasferisci i file e le cartelle in modo ricorsivo
  9. Trasferimento con il limite di dimensione minima
  10. Trasferimento con il limite massimo di dimensioni
  11. Trasferisci i file di un tipo particolare
  12. Visualizza le differenze tra i file di origine e di destinazione
  13. Includere o escludere i file durante il trasferimento
  14. Sincronizzare i dati in modalità Dry
  15. Elimina i file e le cartelle di origine dopo il trasferimento

Trasferisci un singolo file e cartella in locale

Eseguire il comando 'ls' per visualizzare l'elenco di file e cartelle della posizione corrente. Successivamente, esegui il comando 'rsync' per trasferire il file 'employees.txt' nel file 'employees_copy.txt' localmente. Eseguire nuovamente il comando 'ls' per verificare se il file è stato trasferito correttamente o meno.



$ l
$ rsync impiegati.txt impiegati_copia.txt
$ l

Il seguente output mostra che il file 'employee.txt' è stato trasferito correttamente:





Supponiamo che il contenuto della cartella temporanea debba essere trasferito nella cartella tempdir dove esiste il file 'courses.txt' su entrambe le cartelle. Esegui il comando 'ls temp' per controllare il contenuto della cartella temp. Quindi, esegui il comando 'cat temp/courses.txt' per controllare il contenuto di questo file. Quindi, esegui il comando 'ls tempdir' per controllare il contenuto della cartella tempdir. Quindi, esegui il comando 'cat tempdir/courses.txt' per controllare il contenuto di questo file.



$ ls temp
$ cat temp/corsi.txt
$ lstempdir
$ cat tempdir/corsi.txt

L'output mostra che il contenuto del file 'courses.txt' delle cartelle temp e tempdir è leggermente diverso e il file 'courses.txt' della cartella temp contiene più dati rispetto al file 'courses.txt' della cartella tempdir .

Esegui il seguente comando per trasferire il contenuto della cartella temp nella cartella tempdir e controlla il contenuto del file 'courses.txt' della cartella tempdir per confermare che il file sia aggiornato correttamente o meno:

$ rsync -a temp/ tempdir/
$ lstempdir
$ cat tempdir/corsi.txt

Il seguente output mostra che il contenuto della cartella temp viene trasferito correttamente nella cartella tempdir e il contenuto del file 'courses.txt' della cartella tempdir viene aggiornato correttamente:

Trasferisci più file e cartelle in locale

Il comando 'rsync' può essere utilizzato per trasferire più file e cartelle in locale. Eseguire il seguente comando per trasferire i file 'ping1.bash' e 'ping2.bash' nella cartella tempdir e controllare il contenuto della cartella tempdir dopo il trasferimento. L'opzione -v viene utilizzata con il comando 'rsync' per visualizzare l'output in formato dettagliato:

$ rsync -v ping1.bash ping2.bash tempdir/
$ lstempdir

Il seguente output mostra che più file vengono trasferiti correttamente nella cartella tempdir:

Eseguire i seguenti comandi per verificare il contenuto delle cartelle temp, tempdir e test e trasferire il contenuto delle cartelle test e tempdir nella cartella temp:

$ ls temp
$ lstempdir
$ ls test
$ rsync -av prova/ tempdir/ temp/
$ ls temp

L'output mostra che il contenuto delle cartelle test e tempdir è stato trasferito correttamente nella cartella temp. I file 'customers.csv', 'ping1.bash' e 'ping2.bash' vengono aggiunti come nuovi file alla cartella temporanea:

Trasferisci un singolo file e cartella in remoto

Devi installare e configurare il server SSH nella posizione remota per trasferire i file e le cartelle in remoto. Puoi controllare questo tutorial per configurare il server SSH.

Esegui il seguente comando per verificare la dimensione del file 'courses.txt' della posizione corrente:

ls -la corsi.txt

L'output mostra che la dimensione del file 'courses.txt' è di 65 byte:

Esegui il seguente comando per trasferire 'courses.txt' al file /home/ubuntu/corsi/ cartella della posizione remota, ubuntu@192.168.0.101. Devi fornire la password di root della macchina remota prima di trasferire il file:

rsync -v corsi.txt  ubuntu@192.168.0.101:/home/ubuntu/corsi/

Il seguente output mostra che il file 'courses.txt' viene trasferito correttamente nel computer remoto e la dimensione del file è di 65 byte:

Esegui il comando seguente per trasferire la cartella temporanea nel file /home/ubuntu/corsi/ cartella della posizione remota, ubuntu@192.168.0.101. Devi fornire la password di root della macchina remota prima di trasferire il file come il comando precedente.

rsync -av temp/ ubuntu@192.168.0.101:/home/ubuntu/corsi/

Il seguente output mostra che il contenuto della cartella temporanea viene trasferito correttamente nel computer remoto:

Trasferisci più file e cartelle in remoto

Il seguente comando 'rsync' trasferisce i file 'customers.csv' e 'department.json' al /home/Ubuntu/file/ cartella della posizione remota, ubuntu@192.168.0.101.

rsync -av clients.csv department.json ubuntu@192.168.0.101:/home/ubuntu/files/

Il seguente output mostra che più file vengono trasferiti correttamente nella posizione remota:

Il seguente comando 'rsync' trasferisce il contenuto delle cartelle temp e test e il file 'department.json' al /home/Ubuntu/file/ cartella della posizione remota, ubuntu@192.168.0.101.

rsync -av temp/ test/ department.json ubuntu@192.168.0.101:/home/ubuntu/files/

Il seguente output mostra che il contenuto di più cartelle viene trasferito correttamente nella posizione remota:

Visualizza l'avanzamento del trasferimento

Eseguire il comando 'rsync' con l'opzione –progress per trasferire il contenuto della cartella tempdir nella cartella temp_copy con le informazioni sull'avanzamento.

rsync -a tempdir/ temp_copy --progress

Il seguente output mostra che la directory temp_copy viene creata localmente e il contenuto della cartella tempdir viene trasferito correttamente nella cartella temp_copy:

Comprimi i dati durante il trasferimento

Eseguire il seguente comando 'rsync' con l'opzione –z per comprimere e trasferire localmente la directory tempdir nella directory test:

rsync -za tempdir/test/

Il seguente output mostra che la directory compressa è stata trasferita correttamente in locale:

Trasferimento con il limite di larghezza di banda

Eseguire il seguente comando 'rsync' con l'opzione –bwlimit con valore 100 per trasferire localmente il file /etc/passwd nella cartella temp:

rsync -v --bwlimit=100 etc/passwd temp/

Il seguente output mostra che il file passwd è stato trasferito correttamente:

Trasferisci il file e la cartella in modo ricorsivo

Eseguire il seguente comando 'rsync' con l'opzione –rv per trasferire localmente la cartella di test nella cartella test_bak:

rsync -rv test/ test_bak/

Il seguente output mostra che la cartella test è stata trasferita correttamente nella cartella test_bak:

Trasferimento con il limite di dimensione minima

Il trasferimento di file e cartelle utilizzando il comando 'rsync' può essere limitato utilizzando l'opzione –min-size per impostare il limite minimo della dimensione del trasferimento di file e cartelle. Esegui il seguente comando 'ls -la tempdir' per controllare la dimensione di ogni file e cartella di questa cartella. Successivamente, esegui il comando 'rsync' per trasferire il contenuto della cartella tempdir nella cartella tempdir_bak con il limite di dimensione minimo.

ls -la tempdir
rsync -av --min-size='245B' tempdir/tempdir_bak

L'output seguente mostra che nella cartella tempdir esistono due file che corrispondono alla dimensione minima. Questi sono 'ping1.bash' (248 byte) e 'test.txt' (34504 byte). Questi file vengono trasferiti nella cartella tempdir_bak e gli altri file della cartella tempdir vengono omessi:

Trasferimento con il limite massimo di dimensioni

Il trasferimento di file e cartelle utilizzando il comando 'rsync' può essere limitato utilizzando l'opzione –max-size per impostare il limite massimo della dimensione del trasferimento di file e cartelle. Esegui il seguente comando 'ls -la temp' per controllare la dimensione di ogni file e cartella di questa cartella. Successivamente, esegui il comando 'rsync' per trasferire il contenuto della cartella temporanea nella cartella temp_bak con il limite massimo di dimensione.

ls -la temp
rsync --max-size='250B' temp/ temp_bak/

L'output seguente mostra che esistono quattro file nella cartella temporanea che corrisponde al limite massimo di dimensioni. Questi sono 'courses.txt' (65 byte), 'employees.csv' (361 byte), 'ping1.bash' (248 byte) e 'ping2.bash' (244 byte). Questi file vengono trasferiti nella cartella temp_bak e gli altri file nella cartella temp vengono omessi:

Trasferisci i file di un tipo particolare

Il tipo di file che verrà trasferito può essere impostato menzionando l'estensione del file nel comando 'rsync'. Esegui il seguente comando 'rsync' per trasferire tutti i file di testo della cartella temp nella cartella mydir. Qui, l'estensione del file di testo è indicata con '*.txt':

rsync -v temp/*.txt miadir/

Il seguente output mostra che due file di testo, 'courses.txt' e 'test.txt', vengono trasferiti nella cartella mydir e gli altri file della cartella temp vengono omessi:

Visualizza le differenze tra i file di origine e di destinazione

Quando i file o le cartelle vengono trasferiti da una posizione a un'altra in locale o in remoto, entrambe le posizioni possono contenere gli stessi file o cartelle. Le differenze tra l'origine e la destinazione durante la trasmissione possono essere esaminate utilizzando l'opzione -i con il comando 'rsync'. Eseguire i seguenti comandi 'cat' per verificare il contenuto del file di origine e di destinazione prima del trasferimento. Qui, il file 'courses.txt' viene trasferito nella cartella temporanea.

corsi per gatti.txt
cat temp/corsi.txt
rsync -avi corsi.txt temp/

Il seguente output mostra che il file 'courses.txt' dell'origine e della destinazione sono leggermente diversi. L'output del comando 'rsync' mostra la differenza tra i file:

Sincronizzare i dati in modalità Dry

Se vuoi sapere quali file e cartelle vengono trasferiti dal comando 'rsync' prima del trasferimento effettivo, è meglio eseguire il comando 'rsync' con l'opzione –dry-run o l'opzione –n. Quando il comando 'rsync' viene eseguito con questa opzione, controlla quali file o cartelle vengono copiati dalla cartella di origine alla cartella di destinazione, ma mantiene invariata la cartella di destinazione. Eseguire il file 'ls –la department.json' per verificare le dimensioni del file. Successivamente, esegui il comando 'rsync' con la modalità –dry-run per verificare il trasferimento di 'department.json' nella cartella temp.

ls -la dipartimento.json
rsync -v --dry-run department.json temp/

L'output seguente mostra che la dimensione del file 'department.json' è di 1172 byte. La dimensione del file mostra 1172 byte dopo l'esecuzione del comando 'rsync' con l'opzione –dry-run:

Includere o escludere i file durante il trasferimento

È possibile filtrare il tipo di file al momento del trasferimento dalla posizione di origine alla posizione di destinazione utilizzando le opzioni –include e –exclude. L'opzione 'optionsinclude' viene utilizzata per definire l'estensione di quei file che verranno trasferiti dall'origine alla destinazione. L'opzione –exclude viene utilizzata per definire l'estensione di quei file che non verranno trasferiti dall'origine alla destinazione.

Esegui la seguente cartella 'ls temp' per controllare il contenuto della cartella temp. Successivamente, esegui il comando 'rsync' con le opzioni –include e –exclude. In base al comando, tutti i file CSV della cartella temporanea vengono trasferiti nella cartella dei file e tutti i file di testo della cartella temporanea vengono omessi al momento del trasferimento. Quindi, esegui il comando 'ls files' per verificare quali file vengono trasferiti dalla cartella temporanea alla cartella dei file.

temp
rsync -a temp/ files/ --include=*.csv --exclude=*.txt
ls

L'output seguente mostra che la cartella temporanea contiene due file CSV, due file di testo e due file BASH. La cartella dei file è vuota prima del trasferimento e vengono trasferiti due file CSV e due file BASH:

Elimina i file e le cartelle di origine dopo il trasferimento

Nei precedenti tutti i comandi 'rsync', i file e le cartelle di origine rimangono nella posizione di origine dopo il trasferimento nella posizione di destinazione. Ma a volte, richiede il trasferimento permanente di file e cartelle nella posizione di destinazione. Questa attività può essere eseguita utilizzando l'opzione –remove-source-files con il comando “rsync”. Esegui il comando 'ls' per controllare tutti i file e le cartelle della posizione corrente. Esegui il comando 'ls temp' per controllare i file e le cartelle della cartella temp. Quindi, esegui il comando 'rsync' con l'opzione –remove-source-files per eliminare i file e le cartelle della posizione di origine dopo aver completato il trasferimento. Eseguire nuovamente il comando 'ls' per verificare se il file di origine è stato rimosso o meno dal percorso di origine.

ls
temp
rsync  employee.csv temp/ --remove-source-files
ls

Il seguente output mostra che il file 'employees.csv' della posizione corrente viene trasferito nella cartella temporanea e il file 'employees.csv' viene rimosso dalla posizione di origine dopo il trasferimento:

Conclusione

'rsync' è uno strumento molto utile di Linux che semplifica l'attività di trasmissione di file e cartelle da una posizione a un'altra utilizzando diverse opzioni. I metodi di utilizzo del comando 'rsync' per trasferire i file e le cartelle da una posizione a un'altra comprimendo, impostando le dimensioni di file e cartelle, impostando il tipo di file, impostando il limite di larghezza di banda, ecc. sono mostrati in 15 semplici esempi di questo tutorial. Questo tutorial aiuta gli utenti Linux a conoscere correttamente gli usi di base del comando 'rsync' in Linux.