GNU/Linux >> Linux Esercitazione >  >> Linux

15 esempi pratici di comando Rsync in Linux

Il comando Rsync ci consente di trasferire e sincronizzare file su una connessione SSH o su una macchina locale su diverse directory e macchine. Se hai bisogno di eseguire il backup della tua directory o sincronizzare i dati, Rsync è uno dei migliori strumenti per il backup del sistema. L'uso di Rsync è molto più efficiente della semplice copia di file perché Rsync copia solo ciò che è diverso.

Ad esempio, se stai cercando di eseguire il backup di 1000 foto, Rsync sceglierà solo quei file specifici che sono nuovi o diversi dall'ultimo backup. Inoltre, se stai copiando i dati e perdi la connessione di rete ed esegui nuovamente il comando Rsync, saprebbe da dove è stato interrotto e non dovrebbe ricominciare da capo.

Come amministratore di sistema Linux, devi conoscere alcuni esempi pratici e importanti di comandi Rsync in Linux per rendere la tua esperienza più fluida.

Caratteristiche di Rsync in Linux

Qui, sto aggiungendo alcune funzionalità di base di Rsync. Puoi esaminare i punti forniti di seguito per una panoramica dettagliata del comando di sincronizzazione remota che ti aiuterà in seguito a comprendere gli esempi dei comandi Rsync in Linux.

  • Il comando Rsync può copiare file, directory e sottodirectory.
  • Poiché Rsync utilizza l'algoritmo di trasferimento delta, lo strumento salta i file già nell'indirizzo di destinazione.
  • Rsync ignora il file che è esattamente lo stesso dei sistemi client e host.
  • Puoi usare Rsync sia su SSH che su macchina locale.
  • Può eseguire i comandi tar insieme alla copia di file.
  • Nella maggior parte dei casi, Rsync non ha bisogno di sudo privilegio.
  • Puoi utilizzare i comandi della pipeline insieme a Rsync per trasferire i file più velocemente e mantenere la latenza più bassa.
  • Per copiare file sul Web, Rsync utilizza il protocollo TCP.
  • Rsync può ridurre la quantità di larghezza di banda richiesta.
  • Non puoi copiare file tra due o più host remoti tramite Rsync su Linux.

Sintassi di sincronizzazione remota in Linux

Qui, sto aggiungendo alcune sintassi più importanti e la sinossi di Rsync. È importante esaminare le sintassi e i flag per comprendere meglio gli esempi dei comandi Rsync in Linux.

I formati di comando forniti servono per il trasferimento di file sulla macchina locale.

rsync [OPTION...] SRC... [DEST]

Rsync utilizza il formato di comando fornito per il trasferimento di file tramite una shell remota.

- -
Pull: rsync [OPTION...] [[email protected]]HOST:SRC... [DEST]
Push: rsync [OPTION...] SRC... [[email protected]]HOST:DEST

Rsync utilizza il formato di comando specificato per il trasferimento di file quando accede all'host come demone.

Pull: rsync [OPTION...] [[email protected]]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[[email protected]]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [[email protected]]HOST::DEST
rsync [OPTION...] SRC... rsync://[[email protected]]HOST[:PORT]/DEST

Installa Rsync su Linux

Prima di passare agli esempi dei comandi Rsync in Linux, dobbiamo verificare se lo strumento è installato o meno sul sistema. Per impostazione predefinita, Rsync viene preinstallato con tutte le principali distribuzioni Linux. Quindi, se trovi che lo strumento non è installato sul tuo sistema, puoi facilmente ottenere lo strumento Rsync sulla tua macchina. Qui sto arruolando i comandi per le principali distribuzioni Linux per installare Rsync.

Scarica Rsync su Fedora e Red Hat Linux

sudo yum install rsync -y
sudo dnf install rsync -y

Installa Rsync su Debian/Ubuntu Linux

sudo apt install rsync -y

Puoi ottenere lo strumento Rsync dai comandi Snap sui sistemi Arch Linux. Si prega di eseguire rispettivamente i comandi indicati di seguito per ottenere lo strumento Rsync su Arch Linux. Innanzitutto, clona il repository su Linux.

git clone https://aur.archlinux.org/snapd.git
cd snapd
makepkg -si

Ora, esegui i comandi di controllo del sistema per utilizzare i socket. Quindi esegui il comando Snap per installare lo strumento.

sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap
sudo snap install rsync-leftyfb

Infine, al termine dell'installazione, puoi ora controllare la pagina di aiuto di Rsync sulla shell del terminale.

$ rsync --help

Rsync in Linux

Rsync è la forma abbreviata del comando di sincronizzazione remota. Questo strumento Rsync è disponibile sia per Mac che per Linux. In entrambi i casi, le sintassi e gli stili dei comandi sono praticamente gli stessi. Ora, quando diciamo sincronizzazione remota, ciò non significa necessariamente che dovrai sincronizzare o copiare file su SSH o Internet.

Puoi anche eseguire Rsync sulla stessa macchina per sincronizzare due directory o sottodirectory diverse. L'uso molto efficace di Rsync è visto nell'aggiornamento dei repository dei pacchetti e dei server alternativi o mirror.

In questo post vedremo alcuni esempi dei comandi Rsync più usati e potenti per Linux.

Esempi di Rsync in Linux

Ecco alcuni esempi di base del comando e del formato Rsync in Linux. Quello fornito di seguito è il formato del comando e il secondo è per l'utilizzo di Rsync su SSH.

In Linux, Rsync stabilirà un collegamento sulla connessione SSH durante l'esecuzione in un ambiente host-client. Quando l'utente remoto o il client accetta la connessione, il client Rsync riattiva automaticamente Rsync sul sistema host.

Formato di comando generale di Rsync

$ rsync [options] source [destination]

Formato del comando Rsync per le connessioni SSH

$ rsync local-file [email protected]:remote-file

1. Comando di sincronizzazione remota per copiare tutti i file nella directory

L'esempio riportato di seguito del comando Rsync su Linux copierà tutti i file dai Documenti nella directory /tmp/documents.

$ rsync -av Documents/* /tmp/documents

In questo comando abbiamo utilizzato tre flag; -a e -v e il *. Ecco la spiegazione di cosa fanno nel comando.

  • -a:Il flag -a esegue il comando in modalità archivio/libreria.
  • -v:Il -v blag viene utilizzato per eseguire Rsync in modo dettagliato.
  • – *:Il simbolo * assicura che tutti i file siano selezionati e copiati.

Ora, se aggiungiamo alcuni nuovi file alla directory originale ed eseguiamo nuovamente Rsync, copierà i nuovi file e notificherà l'output verbale nella shell.

$ rsync -av Documents/* /tmp/documents

Il comando indicato di seguito ci consentirà di eseguire un test per sapere quali file verranno sincronizzati per evitare errori.

$ rsync -aunv /home/ubuntupit/Documents/* /home/ubuntupit/Pictures/

Dopo aver eseguito un controllo di prova, ora possiamo eseguire il comando effettivo rimuovendo il flag -n sul comando.

$ rsync -auv /home/ubuntupit/Documents/* /home/ubuntupit/Pictures/

2. Esempio di comando Rsync su SSH

Finora, abbiamo visto alcuni esempi di Rsync su come eseguirlo in una macchina locale. Qui vedremo come eseguirlo sui server. Tutte le sintassi sono le stesse; devi solo inserire l'indirizzo del server web e il nome utente.

$ rsync -av --ignore-existing Documents/* [email protected]:~/all/

3. Esempi di Rsync in Linux:Dry Run Rsync

Nella programmazione, il termine dry run è definito come l'esecuzione di un comando solo per vedere un'anteprima o una falsa esecuzione per verificare cosa potrebbe accadere se eseguiamo il comando. Qui possiamo applicare anche il comando dry run per Rsync.

Gli esempi di comando Rsync riportati di seguito ci consentiranno di verificare quali file verranno sincronizzati sul sistema host dal server Linux remoto. Successivamente, possiamo eseguire il comando senza il dry run.

$ rsync -av --dry-run --update Documents/* [email protected]:~/all/
$ rsync -av --update Documents/* [email protected]:~/all/

4. Sincronizza i file tra la macchina locale e il server remoto

Il comando precedente mostra come inviare file dalla macchina locale alla macchina locale o dal server a un altro host. L'esempio seguente di Rsync mostra come utilizzare lo strumento per inviare file da una macchina locale a una macchina Linux remota.

rsync [options] [files] [remote-username]@[ip-address]:/[destination]

5. Trasferisci file dal server remoto al computer locale

Proprio il contrario del comando precedente, l'esempio di seguito menzionato del comando Rsync mostrerà come inviare file dal server Linux remoto al tuo computer locale.

rsync -rv [email protected]:/home/ubuntupit/Backup /home/ubuntupit/Desktop/Original

6. Visualizza i progressi con Rsync

Questo è molto importante per coloro che hanno bisogno di trasferire file di grandi dimensioni tramite lo strumento Rsync. Ad esempio, l'esempio riportato di seguito del comando Rsync mostra come monitorare e osservare l'avanzamento del trasferimento nella CLI su Linux.

sudo rsync -rv --progress Original/* /etc/ubuntupit

Puoi eseguire il comando Rsync con il flag '–include' per aggiungere un file specifico al processo di sincronizzazione.

sudo rsync -vr --include 'I*' Original/ /etc/Backup/

7. Usa Rsync con '–exclude' per ignorare i file

Con Rsync, puoi anche utilizzare un exclude comando per escludere qualsiasi file dal tuo comando. L'esempio riportato di seguito del comando Rsync in Linux ci mostra come escludere un file che non vogliamo sincronizzare. Qui ho escluso il file To_check_rsync_two (un'altra copia).txt da sincronizzare tramite questo comando Rsync sul mio sistema Linux.

$ sudo rsync -vr --exclude 'To_check_rsync_two (another copy).txt' /home/ubuntupit/Desktop/ /home/ubuntupit/Documents/

Allo stesso modo, puoi anche includere un file se desideri includere con forza che ritieni che rsync non verrà aggiunto per impostazione predefinita.

sudo rsync -vr --exclude '*' --include 'I*' Original/ /etc/Backup/

Per rimuovere o eliminare un file da sincronizzare tramite il comando Rsync, puoi utilizzare il flag -delete nel comando sulla shell del terminale.

rsync -vr --delete /etc/Backup/ [email protected]:/home/ubuntupit/Backup

8. Imposta il limite di dimensione massima

Se stai utilizzando una quantità limitata di dati di larghezza di banda su un computer e devi passare più file, ma non sai quando è necessario interrompere il trasferimento per risparmiare larghezza di banda, puoi utilizzare l'esempio riportato di seguito di Rsync comando per limitare la dimensione massima del trasferimento del file.

rsync -vr --max-size='200k' /etc/Backup/ [email protected]:/home/ubuntupit/Backup

9. Elimina automaticamente i file di origine dopo un trasferimento

Se il tuo PC host ha uno spazio su disco limitato e desideri eliminare il file contemporaneamente dopo aver trasferito il file nel tuo sistema, puoi utilizzare il flag di eliminazione con il comando Rsync sulla shell del terminale Linux.

$ rsync -vr --remove-source-files Original/* [email protected]:/home/ubuntupit/backups/

10. Sincronizza i file interi con Remote Sync

Finora, abbiamo visto il comando Rsync sincronizzare solo quei file che non sono stati modificati o modificati. Ma se vuoi sincronizzare tutti i tuoi file modificati e non, puoi usare il comando Rsync dal basso.

rsync -vrW Original/* [email protected]:/home/ubuntupit/Backup

11. Interrompi la sincronizzazione dei file modificati nella destinazione

Dopo aver selezionato un intero sistema, se non desideri sincronizzare un file o una cartella specifica, puoi assegnare quel percorso al comando Rsync in modo che lo strumento Rsync salti il ​​percorso per la sincronizzazione.

rsync -vu Original/* [email protected]:/home/ubuntupit/Backup

12. Aggiungi -i Flag per monitorare la differenza

Per visualizzare la differenza tra il file originale e il file dopo la sincronizzazione, utilizzare un flag i con il comando.

rsync -avzi Original/ Backup/

13. Usa Remote Sync per copiare solo la struttura della directory

Questo comando è molto interessante per chi è interessato a copiare o trasferire il file; ora puoi usare il comando rsync per vedere la struttura della directory tramite il comando rsync.

rsync -av -f"+ */" -f"- *" /home/ubuntupit/Desktop/Original/ /home/ubuntupit/Documents/

14. Aggiungi il timbro della data al nome della directory

Per includere un timestamp sul file durante il trasferimento tramite lo strumento di sincronizzazione remota, puoi utilizzare il formato del timbro riportato di seguito al comando per la posizione di destinazione.

Destination directory: $(date +\\%Y-\\%m-\\%d)
sudo rsync -rv /home/ubuntupit/Documents/* /etc/$(date +\\%Y-\\%m-\\%d)

15. Copia di più file in remoto

Finora, abbiamo visto come copiare e trasferire un singolo file da un server remoto a una macchina locale o viceversa da un PC host alla macchina locale. Ora vedremo come aggiungere più file e trasferirli tramite un comando Rsync. Per aggiungere più file, dobbiamo specificare tutti i percorsi dei file nel comando.

rsync -vr /home/ubuntupit/Documents/To_check_rsync.txt /home/ubuntupit/Desktop/To_check_rsync_two.txt /home/ubuntupit/
rsync -vr /home/ubuntupit/Documents/To_check_rsync.txt /home/ubuntupit/Desktop/To_check_rsync_two.txt [email protected]:/home/ubuntupit/Backup

Approfondimenti!

Poiché il comando Rsync è scritto nel linguaggio di programmazione C e funziona come un'applicazione a thread singolo, questo strumento può comunicare facilmente con il kernel e altre applicazioni. Nell'intero post, abbiamo visto lo strumento Rsync e gli esempi del comando Rsync in Linux per trasferire file in modo efficace su macchine e server.

Puoi persino sincronizzare i server Apache utilizzando il comando Rsync con la configurazione e le conoscenze adeguate. In alcuni casi, il comando Rsync può essere associato al comando checksum che può eseguire indipendentemente dal fatto che il file sia stato modificato o meno. Se sei più interessato a Rsync, puoi anche provare lo strumento Rsync basato su GUI.

Per favore condividilo con i tuoi amici e la comunità Linux se trovi questo post utile e informativo. Ti invitiamo inoltre a scrivere le tue opinioni su questo post nella sezione commenti.


Linux
  1. Comando cp in Linux:7 esempi pratici

  2. Comando di arresto di Linux:5 esempi pratici

  3. Esempi pratici di comando rsync in Linux

  4. 10 esempi pratici di comandi Linux nm

  5. 7 Esempi di comandi Linux df

12 Esempi pratici di In Command in Linux

5 esempi pratici di Tail Command in Linux

echo Command in Linux:7 esempi pratici

Esempi di comandi Linux rsync

Pratico comando Ping negli esempi di Linux

Esempi di comandi id in Linux