Come usare rsync con esempi

Rsync è uno strumento popolare per la sincronizzazione di file, sia in locale che in remoto. A differenza di altri strumenti di sincronizzazione, rsync utilizza un algoritmo interessante che riduce al minimo il consumo di larghezza di banda. Sposta semplicemente la parte dei file che sono stati modificati.

È una potente utility che può servire in molte situazioni. In questo articolo, mostrerò come iniziare con rsync con una dimostrazione. La dimostrazione verrà eseguita su Ubuntu 18.04.

Rsync

Rsync sta per il termine sincronizzazione remota. Nonostante il nome, può gestire la sincronizzazione dei file da remoto e localmente. Il termine rsync viene utilizzato anche per riferirsi al protocollo rsync che rsync utilizza per la sincronizzazione. In questo articolo, rsync indicherà sempre lo strumento, non il protocollo.

A causa della sua popolarità, rsync è disponibile su quasi tutti i singoli sistemi Linux e UNIX-like. C’è una buona probabilità che si tratta di pre-installato. In caso contrario, fai una piccola ricerca su come installare rsync nel tuo sistema.

Ecco una breve lista di caratteristiche rsync offre.

  • Copia directory
  • Facile configurazione di backup
  • Può funzionare su SSH
  • Può essere eseguito come daemon/server
  • Conservazione dei permessi dei file

Utilizzo Rsync

Prima di saltare in rsync, abbiamo bisogno di alcuni file fittizi con cui lavorare. Creiamo prima una directory fittizia.

mk mkdir-v primary

Una volta creato, è il momento di creare una manciata di file fittizi. Per creare un file, userò il comando touch. Ulteriori informazioni sul comando touch.

touch toccare dummy{1..20}

Voilà! Ora siamo pronti per utilizzare rsync per eseguire azioni utilizzando questi file fittizi.

Struttura dei comandi Rsync

Rsync utilizza la seguente struttura di comandi.

$ rsync <opzione><src><destinazione>

Sincronizzazione di directory locali

Ora, è il momento di usare rsync per sincronizzare i file tra più destinazioni. In questo esempio, sincronizzeremo il contenuto di dir_primary in dir_target.

mk mkdir-v target

Dire a rsync di sincronizzare il contenuto di entrambe le directory.

rs rsync-v-r primary/target

Qui, abbiamo usato due argomenti diversi.

-v: Indica a rsync di eseguire la modalità dettagliata
-r: ricorsiva, necessaria per la sincronizzazione della directory.

In questo prossimo esempio, useremo un flag diverso.

rs rsync-v-a primary/target

-a: Un flag di combinazione che sta per “archive”.

Usando questo flag, rsync sincronizzerà i contenuti in modo ricorsivo preservando qualsiasi file simbolico, speciale/dispositivo, tempi di modifica, permessi dei file, gruppo, proprietario, ecc. È più comunemente usato del flag “- r”. Per l’archiviazione, questo è un metodo più consigliato.

Hai notato che in tutti i comandi che abbiamo eseguito finora, nel caso di source, conserviamo sempre il ” / ” dopo il nome della directory? Questo per dire a rsync che la fonte è tutto il contenuto della directory di origine. Se il “/” alla fine della directory di origine non viene utilizzato, rsync creerà semplicemente una copia della directory di origine invece del suo contenuto.

Controlliamo con un esempio.

rs rsync-v-a target primario

Controlla il risultato dell’output.

target tree target /

La maggior parte delle volte, questo non è qualcosa di cui abbiamo bisogno. Tuttavia, a seconda della situazione, potrebbe tornare utile.

Rsync test run

Prima di eseguire un comando rsync, è sempre importante verificare che il comando eseguirà l’azione come previsto. Se si desidera testare l’azione rsync per un determinato comando, utilizzare il flag”- n “o”- dry-run”.

$ rsync -avn primaria/ target

$ rsync -avn obiettivo primario

Qui, l’output mostra che rsync vorresti effettuare se il comando è stato effettivamente eseguito. Ogni volta che stai testando, non dimenticare di usare il flag “-v” per ottenere una rappresentazione accurata di ciò che sta accadendo.

Rsync su una connessione remota

Questa è un’altra caratteristica interessante rsync supporta. Se la posizione di backup è remota, è possibile configurare facilmente rsync per eseguire il backup nella posizione remota tramite SSH. Tuttavia, entrambe le macchine devono avere rsync installato. Inoltre, entrambi i sistemi devono anche avere set di chiavi SSH.

Pronto? Cominciamo. All’inizio, è la sincronizzazione dell’archivio.

$ rsync -un <local_dir><nome utente><remote_host><
destination_dir>

Ecco, questa operazione si chiama “push” perché spinge una directory del sistema locale per un sistema remoto. L’opposto è noto come “pull”.

$ rsync -un <nome utente><remote_host><source_dir><local_dir>

Rsync considera il primo argomento come sorgente, il secondo come destinazione.

Utili opzioni rsync

Rsync supporta un sacco di opzioni. Tutti servono al loro scopo. Tuttavia, per la maggior parte, solo una manciata di essi vengono utilizzati la maggior parte del tempo. In questa sezione, diamo un’occhiata ad alcune utili opzioni rsync.

La maggior parte delle volte, i file che stai per sincronizzare non sono compressi. Utilizzando la compressione, è possibile risparmiare tempo e larghezza di banda al costo di un po ‘ di potenza di elaborazione in più. Rsync offre la compressione per impostazione predefinita. Per eseguire la sincronizzazione compressa, utilizzare il flag “- z”.

$ rsync -avz <fonte><destinazione>

Questo interessante bandiera combina la funzione di “progresso” e “parziale” di bandiera. Il primo è quello di mostrare una barra di avanzamento del trasferimento e il secondo è quello di consentire la ripresa del trasferimento interrotto. Entrambe queste caratteristiche sono combinate nel flag”- P”.

$ rsync -avzP <source><destination>

Now, let’s check out how rsync handles file syncing intelligently. Run the previous command again.

$ rsync -avzP <fonte><destinazione>

Qui, rsync non ri-caricare tutti i file. Invece, ha saltato quelli che non sono cambiati affatto. In questo esempio, ha saltato tutti i file come tutti sono presenti nella directory di destinazione.

Cosa succede se hai eliminato un file dalla directory di origine? Per impostazione predefinita, rsync non eliminerà nulla dalla directory di destinazione. Per forzare rsync eliminare i file, utilizzare il flag “- delete”. Tuttavia, utilizzare l’esecuzione a secco per verificare se il comando funziona come si desidera.

$ rsync -avn –delete <fonte><destinazione>

per impostazione predefinita, rsync si sincronizza ogni singolo file/directory, dalla sorgente alla directory di destinazione. In alcune situazioni, è possibile includere / escludere determinati file dalla sincronizzazione. Rsync offre opzioni utili come “- exclude ” e “- include ” per escludere/includere determinati file. Passare il modello di file come valore per questi argomenti.

$ rsync -avn –exclude=<modello> –include=<modello>

È inoltre possibile definire la dimensione del file più grande che rsync dovrebbe sync. Per fare ciò, usa il flag “- max-size ” seguito dalla dimensione del file.

$ rsync -avn –max-size=’10k’ <fonte><destinazione>

Rsync ha un’altra caratteristica interessante nella sua manica. Non è più necessario il file sorgente dopo la sincronizzazione? Rsync può farlo, nessun problema. Tuttavia, assicurati di non eseguire rsync con il flag “-delete”. In caso contrario, rsync eliminerà i file sincronizzati dalla destinazione!

$ rsync -av –remove-source-file <fonte><destinazione>

considerazioni Finali

Questi sono solo alcuni comuni e semplice scenario di rsync utilizzo. Offre molto di più. È possibile automatizzare le operazioni rsync utilizzando il demone rsync o altri script. Speriamo che questa guida sia stata utile per iniziare con rsync.

Interessato a più rsync? Bene, puoi usare rsync come copiatrice di file. È più efficiente e intelligente di cp. Ulteriori funzionalità e utilizzo approfonditi possono essere trovati nella pagina man di rsync.

man man rsync

Buon divertimento!



Lascia un commento

Il tuo indirizzo email non sarà pubblicato.