GNU/Linux >> Linux Esercitazione >  >> Linux

Comando Rsync in Linux con esempi

rsync è un'utilità da riga di comando veloce e versatile per sincronizzare file e directory tra due posizioni su una shell remota o da/a un demone Rsync remoto. Fornisce un rapido trasferimento di file incrementale trasferendo solo le differenze tra l'origine e la destinazione.

Rsync può essere utilizzato per eseguire il mirroring dei dati, backup incrementali, copiare file tra sistemi e in sostituzione di scp , sftp e cp comandi.

Questo articolo spiega come usare rsync attraverso esempi pratici e spiegazioni dettagliate dei più comuni rsync opzioni.

Installazione di Rsync #

Il rsync l'utilità è preinstallata sulla maggior parte delle distribuzioni Linux e macOS. Se non hai rsync installato sul tuo sistema, puoi installarlo facilmente utilizzando il gestore di pacchetti della tua distribuzione.

Installa Rsync su Ubuntu e Debian #

sudo apt install rsync

Installa Rsync su CentOS e Fedora #

sudo yum install rsync

Sintassi del comando Rsync #

Prima di entrare in come usare il rsync comando, iniziamo esaminando la sintassi di base.

Il rsync le espressioni di utilità assumono la forma seguente:

Local to Local:  rsync [OPTION]... [SRC]... DEST
Local to Remote: rsync [OPTION]... [SRC]... [USER@]HOST:DEST
Remote to Local: rsync [OPTION]... [USER@]HOST:SRC... [DEST]
  • OPTION - Le opzioni di sincronizzazione.
  • SRC - Directory di origine.
  • DEST - Directory di destinazione.
  • USER - Nome utente remoto.
  • HOST - Nome host o indirizzo IP remoto.

rsync fornisce una serie di opzioni che controllano il comportamento del comando. Le opzioni più utilizzate sono:

  • -a , --archive , modalità archivio, equivalente a -rlptgoD . Questa opzione dice a rsync per sincronizzare le directory in modo ricorsivo, trasferire dispositivi speciali e bloccare, preservare collegamenti simbolici, tempi di modifica, gruppi, proprietà e autorizzazioni.
  • -z , --compress . Questa opzione forza rsync per comprime i dati man mano che vengono inviati alla macchina di destinazione. Utilizzare questa opzione solo se la connessione alla macchina remota è lenta.
  • -P , equivalente a --partial --progress . Quando viene utilizzata questa opzione, rsync mostra una barra di avanzamento durante il trasferimento e conserva i file parzialmente trasferiti. È utile quando si trasferiscono file di grandi dimensioni su connessioni di rete lente o instabili.
  • --delete . Quando viene utilizzata questa opzione, rsync elimina i file estranei dalla posizione di destinazione. È utile per il mirroring.
  • -q , --quiet . Utilizza questa opzione se desideri eliminare i messaggi non di errore.
  • -e . Questa opzione ti consente di scegliere una shell remota diversa. Per impostazione predefinita, rsync è configurato per utilizzare ssh.

Utilizzo di base di Rsync #

Il caso d'uso più elementare di rsync consiste nel copiare un singolo file da uno a un'altra posizione locale. Ecco un esempio:

rsync -a /opt/filename.zip /tmp/

L'utente che esegue il comando deve disporre delle autorizzazioni di lettura sulla posizione di origine e di scrittura sulla destinazione.

L'omissione del nome del file dalla posizione di destinazione copia il file con il nome corrente. Se vuoi salvare il file con un nome diverso, specifica il nuovo nome sulla parte di destinazione:

rsync -a /opt/filename.zip /tmp/newfilename.zip

Il vero potere di rsync arriva durante la sincronizzazione delle directory. L'esempio seguente mostra come creare un backup locale dei file del sito Web:

rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/

Se la directory di destinazione non esiste, rsync lo creerà.

Vale la pena ricordare che rsync fornisce un trattamento diverso alle directory di origine con una barra finale (/ ). Se la directory di origine ha una barra finale, il comando copierà solo il contenuto della directory nella directory di destinazione. Quando la barra finale viene omessa, rsync copia la directory di origine all'interno della directory di destinazione.

Utilizzo di rsync per sincronizzare i dati da/su una macchina remota #

Quando si utilizza rsync per trasferire i dati in remoto, deve essere installato sia sulla macchina di origine che su quella di destinazione. Le nuove versioni di rsync sono configurati per utilizzare SSH come shell remota predefinita.

Nell'esempio seguente, stiamo trasferendo una directory da una macchina locale a una remota:

rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/
Se non hai impostato un accesso SSH senza password alla macchina remota, ti verrà chiesto di inserire la password utente.

Per trasferire i dati da un computer remoto a un computer locale, utilizza la posizione remota come origine:

rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Se SSH sull'host remoto è in ascolto su una porta diversa da quella predefinita 22 , specifica la porta utilizzando -e opzione:

rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/

Quando si trasferiscono grandi quantità di dati si consiglia di eseguire rsync comando all'interno di una sessione di schermo o per utilizzare il -P opzione:

rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Escludi file e directory #

Sono disponibili due opzioni per escludere file e directory. La prima opzione è usare --exclude argomento e specificare i file e le directory che si desidera escludere dalla riga di comando.

Quando si escludono file o directory, è necessario utilizzare i percorsi relativi alla posizione di origine.

Nell'esempio seguente viene mostrato come escludere i node_modules e tmp directory:

rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/

La seconda opzione è usare il --exclude-from opzione e specifica i file e le directory che desideri escludere in un file.

rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/
/exclude-file.txt
node_modules
tmp

Conclusione #

Ti abbiamo mostrato come usare Rsync per copiare e sincronizzare file e directory. C'è molto altro da sapere su Rsync nella pagina del manuale dell'utente di Rsync.

Sentiti libero di lasciare un commento in caso di domande.


Linux
  1. Comando wc Linux con esempi

  2. Comando Tee Linux con esempi

  3. Comando testa di Linux con esempi

  4. Comando JQ in Linux con esempi

  5. Comando Linux rsync con esempi pratici

15 Comando Linux ps con esempi

Comando CD Linux con esempi

Comando Linux watch con esempi

Attendi comando in Linux con esempi

Comando di esportazione Linux con esempi

Comando IP Linux con esempi