In questo articolo, spiegheremo come utilizzare RSYNC per copiare i file con alcuni esempi pratici. Spiegheremo anche l'uso di RSYNC nella copia di un singolo file, più file e directory a sistemi sia locali che remoti. Copreremo come usare rsync per:
Abbiamo spiegato i comandi e la procedura menzionati in questo articolo su un Ubuntu 20.04 LTS. Avrai bisogno del terminale della riga di comando per la copia dei file utilizzando RSYNC. Per aprire l'applicazione del terminale riga di comando, utilizzare il collegamento della tastiera CTRL+ALT+T.
Installazione di rsync
Rsync viene preinstallato in Ubuntu 20.04 LTS. Tuttavia, se viene rimosso accidentalmente dal sistema, è possibile installarlo come segue:
$ sudo apt install rsync
Ecco alcune delle opzioni comunemente usate che possono essere utilizzate con rsync:
-A: Modalità Archivio
-V: mostra i dettagli del processo di copia
-P: Mostra la barra di avanzamento
-R: copie i dati in modo ricorsivo
-Z: comprime i dati
-D: sopprimere l'output
Copia file e directory a livello locale
La sintassi generale di rsync è:
$ rsync [opzione] [sorgente] [destinazione]
Copia un singolo file a livello locale
Se si desidera copiare un file da una posizione all'altra all'interno del sistema, puoi farlo digitando rsync seguito dal nome del file di origine e dalla directory di destinazione.
Ad esempio, per copiare un singolo file “File1.txt "Dalla posizione corrente che è Home Directory alla directory ~/documenti, il comando sarebbe:
$ rsync/home/tin/file1.txt/home/tin/documenti
Nota: invece di “/home/tin/file1.txt ", possiamo anche digitare" file1 "poiché attualmente stiamo lavorando nella home directory. Inoltre, possiamo usare ~/documenti invece di menzionare l'intero percorso come "/home/stagno/documenti".
Copia più file a livello locale
Se si desidera copiare più file contemporaneamente da una posizione all'altra all'interno del sistema, puoi farlo digitando rsync seguito dal nome dei file di origine e dalla directory di destinazione.
Ad esempio, per copiare i file “File2.txt "e" file3.txt ”Dalla directory home alla directory ~/documenti, il comando sarebbe:
$ rsync/home/tin/file2.txt/home/tin/file3.txt/home/tin/documenti
Per copiare tutti i file con la stessa estensione, è possibile utilizzare il simbolo asterisk (*) invece di specificare individualmente i nomi dei file. Ad esempio, per copiare tutti i file dalla directory home che termina con ".ESTENSIONE ”ZIP” alla directory ~/documenti, useremo:
$ rsync/home/tin/*.zip ~/documenti
Copia directory a livello locale
Se si desidera copiare una directory con la sua sotto-direzione e tutti i contenuti da una posizione all'altra all'interno del tuo sistema, puoi farlo come digitando rsync seguito dalla directory di origine e destinazione.
Ad esempio, per copiare la directory "campione" nella directory "Test/" all'interno della directory home, il comando sarebbe:
$ RSYNC -AV/Home/Tin/Sample/Home/Tin/Test
Nota: specificare "/" dopo che la directory di origine copia solo il contenuto della directory. Se non specifichiamo il "/" dopo la directory di origine, la directory di origine verrà copiata anche nella directory di destinazione.
Come nel seguente output, puoi vedere che la nostra directory di origine "campione" viene anche copiata nella directory di destinazione (poiché abbiamo usato "campione" anziché "campione/" come directory di origine).
RSYNC supporta il trasferimento incrementale come puoi vedere nell'output sopra che trasferisce solo i file che sono nuovi o aggiornati.
Copia file in base alla dimensione massima
Durante la copia, possiamo anche specificare la dimensione massima dei file che possono essere copiati con l'opzione "-max-size". Ad esempio, per copiare i file non più grandi di 2000k da ~/download alla directory ~/documenti, il comando sarebbe:
$ rsync -a - -max -size = 2000k/home/tin/downloads/*/home/tin/documenti
Questo comando copierà tutti i file da ~/download alla directory ~/documenti tranne quelli più grandi di 2000k.
Copia file in base alla dimensione minima
Allo stesso modo, possiamo anche specificare la dimensione minima dei file che possono essere copiati con l'opzione "-min-size". Ad esempio, per copiare i file non inferiori a 5 m da ~/download alla directory ~/documenti, il comando sarebbe:
$ rsync -a --min -size = 5m/home/tin/downloads//home/tin/documenti
Questo comando copierà tutti i file da ~/download nella directory ~/documenti tranne quelli inferiori a 5m.
Escludere i file
Durante la copia dei file da una directory all'altra, è possibile escludere alcuni file utilizzando l'opzione "-exclude" seguita dal nome del file o dall'estensione del tipo di file.
Ad esempio, per escludere tutti i .file zip durante la copia dei file da ~/download alla directory ~/documenti, il comando sarebbe:
$ rsync -a --exclude = "*.Zip "/Home/Tin/Downloads//Home/Tin/Documents
Copia file e directory in remoto
Con RSYNC, è possibile copiare un singolo file, più file e directory su un sistema remoto. Per copiare file e directory in remoto, avrai bisogno di:
Prima di copiare file utilizzando RSYNC, assicurarsi di poter accedere al sistema remoto tramite SSH:
$ ssh remote_user@remote_ip
La sintassi generale per la copia di file e directory in un sistema remoto utilizzando RSYNC:
$ rsync [opzione] [sorgente] [remoteuser@remoteip: destinazione]
Ad esempio, per copiare un singolo file "file.txt ”da ~/download alla directory del sistema remoto ~/documenti, il comando sarebbe:
$ rsync -v ~/downloads/file1.txt [email protected]: ~/documenti
Allo stesso modo, per copiare la directory "~/downloads/files" in un sistema locale con la sua sotto-directory e tutti i contenuti nella directory "~/download/campioni" nel sistema remoto:
$ rsync -rv ~/downloads/file [email protected]: ~/download/campioni
Puoi anche copiare i file e le directory dalla macchina remota alla macchina locale. Ad esempio, per copiare un "file2.txt "dal sistema remoto al desktop del sistema locale:
$ rsync -v [email protected]: ~/downloads/file2.txt ~/desktop/
Allo stesso modo, per copiare una directory dal sistema remoto al sistema locale
$ rsync -rv [email protected]: ~/downloads/campione ~/desktop/test
È inoltre possibile utilizzare tutte le opzioni come -max -size, -min -size, -esclude e altre durante la copia di file su/dal sistema remoto.
RSYNC è un ottimo strumento per la copia di file da origine a destinazione a livello locale o remoto. Include un ampio set di opzioni che offrono flessibilità e controllo durante il trasferimento di file da/dal sistema remoto.