GNU/Linux >> Linux Esercitazione >  >> Linux

Come utilizzare il comando Linux Rsync (sincronizzazione remota).

Il comando Linux rsync trasferisce e sincronizza file o directory in modo efficiente tra una macchina locale, un altro host, una shell remota o qualsiasi combinazione di questi. Chiunque lavori con sistemi basati su Linux dovrebbe utilizzare questo potente comando per migliorare la propria produttività. Con l'aiuto di questo articolo imparerai tutto ciò di cui hai bisogno per iniziare a usarlo.

La sincronizzazione delle cartelle o la copia manuale dei file può richiedere molto tempo. L'utilità rsync può fare la maggior parte del lavoro per te aggiungendo fantastiche funzionalità per risparmiare tempo. Anche se perdi la connessione durante il trasferimento, questo strumento partirà esattamente da dove era stato interrotto, una volta ristabilita la connessione.

Sintassi di base

La sintassi di base per rsync funziona come segue:

rsync [optional modifiers] [SRC] [DEST]

Ci sono un paio di modi diversi per usare Linux rsync. In questo esempio, [modificatori opzionali] indicare le azioni da intraprendere, [SRC] è la directory di origine e [DEST] è la directory o la macchina di destinazione.

Sintassi di base per Remote Shell

Quando si utilizza una shell remota, come SSH o RSH, la sintassi rsync sarà leggermente diversa.

Per accedere alla shell remota (PULL ) usa il comando rsync:

rsync [optional modifiers] [USER@]HOST:SRC [DEST]

Per accedere alla shell remota (PUSH ) usa il comando rsync:

rsync [optional modifiers] SRC [USER@]HOST:[DEST]

Come controllare la versione Rsync

Prima di verificare la presenza di rsync, dobbiamo accedere al VPS che utilizzeremo. Questo utile tutorial ti mostrerà come farlo su una macchina Windows usando Putty SSH. Se stai usando un computer MacOS o Linux, usa invece il terminale.

Rsync viene preinstallato con molte distribuzioni Linux. Per verificare se rsync è installato sulla tua macchina, esegui il seguente comando:

rsync -version

Sulla nostra distribuzione Ubuntu il comando ha prodotto il seguente output:

rsync  version 3.1.3  protocol version 31

Ciò significa che rsync versione 3.1.3 è già sul nostro computer. Semplice, vero?

Come installare Rsync

Se la tua macchina non ha rsync preinstallato, puoi farlo manualmente in un minuto. Su Debian distribuzioni basate come Ubuntu puoi farlo usando il seguente comando:

apt-get install rsync

Su distribuzioni basate su rpm come Fedora e CentOS usa il seguente comando:

yum install rsync

Su MacOS usa il seguente comando:

brew install rsync

Questo è tutto! Linux rsync è pronto per sincronizzare dati, eseguire trasferimenti di file ed eliminare file. Puoi verificare se l'installazione è andata a buon fine usando il comando menzionato in precedenza:

rsync -version

Come utilizzare i comandi Rsync

Per questo tutorial creeremo due directory sul nostro desktop Linux con i nomi original e duplicare . La directory originale contiene tre file mentre il duplicato è vuoto. Ora vediamo come rsync creerà nuovi modi per aumentare la produttività.

Per creare due directory di test utilizzare i seguenti comandi:

cd ~
mkdir original
mkdir duplicate
touch original/file{1..3}

Se vuoi ricontrollare, usa ls comando per elencare tutti i file all'interno della directory:

ls original

L'output sarà simile a questo:

file1
file2
file3

Se usi ls comando con la directory duplicata, l'outlook dovrebbe essere vuoto.

Ora che le directory sono impostate, proviamo qualche altro comando.

Il comando seguente copierà o sincronizzerà tutti i file nell'originale directory nel duplicato directory.

rsync original/* duplicate/

* indica al comando rsync di sincronizzare tutto nella directory originale con il duplicato.

Se posizioniamo una nuova immagine o file nella cartella originale ed eseguiamo nuovamente lo stesso comando, solo la nuova immagine verrà copiata nella destinazione.

Questa funzione è utile quando si copiano file su una rete con larghezza di banda limitata.

Risincronizza i comandi più comuni

Ecco un elenco dei comandi più comuni utilizzati con rsync:

Ciò abilita la modalità di archiviazione.

-a, --archive

Questo ti dà un output visivo che mostra lo stato di avanzamento del processo.

-v, --verbose

Questo esce in un formato leggibile dall'uomo.

-h, --human-readable format

Questo comprime i dati del file durante il trasferimento.

-z, --compress

Questo serve per copiare i dati in modo ricorsivo

-r

Come utilizzare i comandi Rsync con le sottodirectory

Tieni presente che il comando precedente copierà solo i file dall'originale la directory principale della cartella e non nessuna delle sottodirectory.

Se vuoi copiare anche le sottodirectory, dovrai usare questo comando:

rsync -r original/ duplicate/

Il -r (–ricorsivo ) dice a rsync di copiare tutto, comprese le sottodirectory e i file dalla nostra cartella originale.

Il / modificatore utilizzato dopo originale indica a rsync di copiare il contenuto della directory originale nella cartella duplicata.

Come sincronizzare i file

Se desideri sincronizzare i file, significa copiare i file che si trovano nella cartella di destinazione, ma non sono in originale nella cartella originale, utilizzare il comando seguente:

rsync -r original duplicate/

Con questo comando possiamo essere sicuri che sia la cartella originale che quella duplicata conterranno tutti gli stessi file.

Come combinare i comandi Rsync

Un'altra opzione utile è -a (–archivio) poiché può essere unito a molti altri comandi. Ciò significa che non solo copierà i file, ma copierà anche i permessi, i tempi di modifica e qualsiasi altra data.

Aggiunta di -a opzione con -v sarebbe simile a questo:

rsync -av --dry-run  original/ duplicate/

Non preoccuparti, sembra solo complicato. Analizziamolo.

Questo comando visualizzerà solo i file che verranno copiati senza apportare modifiche effettive. Con questo comando puoi ottenere un elenco dei file che verranno copiati.

Se tutti i file sono quelli che vuoi copiare, esegui nuovamente il comando senza —dry-run .

—funzionamento a secco (o -n ) fa eseguire a rsync un'esecuzione di prova che non apporta modifiche.

Altre opzioni per i comandi Rysnc

Quando si aggiunge il -a opzione per -v opzione, facendo -av al nostro comando, aumenta la verbosità. Ecco come dovrebbe essere:

rsync -av original/ duplicate/

Se desideri sincronizzare due cartelle ed eliminare gli elementi nella cartella duplicata, che non esistono nella cartella originale, aggiungi il –elimina opzione, in questo modo:

rsync -av --delete  original/ duplicate/

Puoi anche escludere file o sottodirectory specifici durante la sincronizzazione di due cartelle. Fallo aggiungendo -exclude= . Se devi specificare più di un file, separali con una virgola.

rsync -av --exclude=file1,file2  original/ duplicate/

Puoi anche includere file o sottodirectory specifici durante la sincronizzazione. Fallo aggiungendo -include= . Puoi anche usarlo con l'opzione -exclude=. L'esempio seguente includerà i file che iniziano con la lettera L ed escludere tutti gli altri file:

rsync -av --include=L* --exclude=*  original/ duplicate/

Usando Rsync, puoi anche specificare la dimensione del file che può essere sincronizzato. Per fare ciò, usa la –dimensione massima opzione:

rsync -av --max-size=10k original/ duplicate/

Utilizzando l'opzione -z (–compress) consoliderà i file che vengono trasferiti sulla rete. Come bonus, vediamo come effettuare un trasferimento dal server di origine a un altro. Il comando sarebbe simile a questo:

rsync -az ~/Desktop/Original [email protected]:~/tmp/

Come accennato prima -z comprime i file, -a , o semplicemente aggiungendo a a -z, si assicurerà che vengano copiate anche tutte le autorizzazioni.

~/Desktop/Originale è la fonte. È una directory locale, quella che si trova sulla macchina su cui hai effettuato l'accesso e, infine, [email protected]:~/tmp/ indica la destinazione. [email protected] è l'indirizzo del server remoto di destinazione, mentre :~/tmp/ punta a una cartella specifica su quella macchina.

Come aggiungere una barra di avanzamento

Oltre ai comandi precedenti, puoi aggiungere -P che unirà le opzioni –progress e –parziale . Questo ti darà una barra di avanzamento per i file trasferiti e ti consentirà anche di riprendere eventuali trasferimenti di file interrotti.

rsync -azP [SRC] [DEST]

L'output sarà simile a questo:

sending incremental file list
./
file1
         0 100%    0.00kB/s   0:00:00   (xfer#1, to-check=1/3)
file2
         0 100%    0.00kB/s   0:00:00   (xfer#2, to-check=2/3)
file3
         0 100%    0.00kB/s   0:00:00   (xfer#3, to-check=3/3)

Quindi, se eseguiamo nuovamente il comando, vedremo un output più breve. Questo perché non sono state apportate nuove modifiche. L'output sarà simile a questo:

sending incremental file list
send 26 bytes received 5 bytes 1200.00 bytes/sec
total size is 0 speedup is 0.00

Se vuoi trasferire solo alcuni file, puoi specificare con il seguente comando:

touch original/file{1..5}
rsync -azP [SRC] [DEST]

Questo darà un output simile al comando precedente, ma solo con i file specificati tra parentesi graffe.

Come creare un backup Rsync

Un altro comando importante è creare un backup Rsync. Fallo combinando –backup con la –dir comando in modo da poter specificare dove verranno archiviati i file di backup.

rsync -a --delete --backup --backup-dir=/path/to/backup /path/to/SRC [DEST]

Conclusione

Abbiamo coperto solo la punta dell'iceberg quando si tratta di comandi Rsync. Linux Rsync è un'utilità incredibilmente potente che ogni amministratore di server o sviluppatore Linux dovrebbe conoscere. Abbiamo coperto tutto per iniziare, dall'installazione ai comandi di base. Se vuoi conoscere le funzionalità più avanzate, controlla la documentazione ufficiale.

Preparati a migliorare la tua produttività. Buona fortuna con il tuo progetto.


Linux
  1. Come usare il comando Linux grep

  2. Come usare il comando cronologia in Linux

  3. Come usare il comando Su in Linux

  4. Comando SCP in Linux:come usarlo, con esempi

  5. Il comando Linux rsync:come usarlo

Come usare il comando nohup di Linux

Come utilizzare il comando FTP di Linux per trasferire file

Come usare du Command in Linux

Come utilizzare il comando sysctl in Linux

Come utilizzare il comando di arresto di Linux

Come usare grep in Linux