È una potente utilità che può servire in molte situazioni. In questo articolo, mostrerò come iniziare con rsync con una dimostrazione. La dimostrazione sarà eseguita su Ubuntu 18.04.
Rsync
Rsync sta per il termine sincronizzazione remota. Nonostante il nome, può gestire la sincronizzazione dei file in remoto e localmente. Il termine RSYNC viene anche usato per fare riferimento al protocollo RSYNC che RSYNC utilizza per la sincronizzazione. In questo articolo, RSYNC indicherà sempre lo strumento, non il protocollo.
A causa della sua pura popolarità, Rsync è disponibile su quasi ogni singolo sistema Linux e UNIX. C'è una buona possibilità che venga preinstallato. In caso contrario, fai una piccola ricerca su come installare rsync nel tuo sistema.
Ecco una lista di caratteristiche offerte da rsync.
Utilizzo rsync
Prima di saltare in rsync, abbiamo bisogno di alcuni file fittizi con cui lavorare. Creiamo prima una directory fittizia.
$ mkdir -v primario
Una volta creata, è tempo di creare una manciata di file fittizi. Per creare un file, userò il comando touch. Ulteriori informazioni sul comando touch.
$ touch dummy 1… 20
Ecco! Ora siamo pronti a utilizzare RSYNC per eseguire azioni utilizzando questi file fittizi.
Struttura di comando RSYNC
RSYNC utilizza la seguente struttura di comando.
$ rsync
Sincronizzare le directory locali
Ora, è il momento di utilizzare RSYNC per la sincronizzazione di file su più destinazioni. In questo esempio, sincronizzeremo il contenuto di dir_primary a dir_target.
$ MKDIR -V Target
Di 'a Rsync di sincronizzare il contenuto di entrambe le directory.
$ rsync -v -r primario/ target
Qui, abbiamo usato due argomenti diversi.
-v: Dice a rsync di correre in modalità verbosa
-R: Ricorsivo, richiesto per la sincronizzazione della directory.
Nel prossimo esempio, useremo una flag diversa.
$ rsync -v -a primario/ target
-UN: Una bandiera combinata che sta per "archivio".
Usando questo flag, RSYNC sincronizzerà il contenuto in modo ricorsivo mentre preserva eventuali file simbolici, speciali/dispositivi, tempi di modifica, autorizzazioni di file, gruppo, proprietario, ecc. È più comunemente usato della flag "-r". Per l'archivio, questo è un metodo più consigliato.
Hai notato che in tutti i comandi che abbiamo eseguito finora, nel caso della fonte, manteniamo sempre il "/" dopo il nome della directory? Questo per dire a rsync che la fonte è tutto il contenuto della directory di origine. Se non viene utilizzato il "/" alla fine della directory di origine, RSYNC creerà semplicemente una copia della directory di origine anziché il suo contenuto.
Dai un'occhiata con un esempio.
$ rsync -v -a obiettivo primario
Controlla il risultato dell'output.
$ Tree Target/
Il più 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, usa il flag "-n" o "-dry-run".
$ rsync -Avn Primary/ Target
$ rsync -Avn Primary Target
Qui, l'output mostra cosa avrebbe eseguito Rsync se il comando fosse 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 supporta Rsync. Se la posizione di backup è da qualche parte 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 impostare le chiavi SSH.
Pronto? Iniziamo. Inizialmente, è la sincronizzazione dell'archivio.
$ rsync -a@ :<
destinazione_dir>
Qui, questa operazione è chiamata "push" perché spinge una directory dal sistema locale a un sistema remoto. Il contrario è noto come "pull".
$ rsync -a@ :
RSYNC tratta il primo argomento come la fonte, il secondo come la destinazione.
Opzioni utili RSYNC
RSYNC supporta un sacco di opzioni. Tutti servono al proprio scopo. Tuttavia, per la maggior parte, solo una manciata viene utilizzata per la maggior parte del tempo. In questa sezione, diamo un'occhiata ad alcune utili opzioni RSYNC.
Il più delle volte, i file che stai per sincronizzazione non sono compressi. Usando la compressione, puoi risparmiare sia tempo che larghezza di banda al costo di un po 'di potenza di elaborazione extra. RSYNC offre la compressione per impostazione predefinita. Per eseguire la sincronizzazione compressa, utilizzare il flag "-z".
$ rsync -avz
Questa bandiera interessante combina la funzione sia della flag "-progress" che "-parziale". Il primo è mostrare una barra di avanzamento del trasferimento e la seconda è consentire il riesame del trasferimento interrotto. Entrambe queste caratteristiche sono combinate nella flag "-p".
$ rsync -avzp
Ora, controlliamo come RSYNC gestisce il file Syncing in modo intelligente. Esegui nuovamente il comando precedente.
$ rsync -avzp
Qui, rsync non ha ricaricato tutti i file. Invece, ha saltato quelli che non sono cambiati affatto. In questo esempio, ha saltato tutti i file poiché 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 i file di eliminare RSYNC, utilizzare il flag "-delete". Tuttavia, usa l'esecuzione a secco per testare se il comando funziona come desideri.
$ rsync -avn - -delete
Per impostazione predefinita, RSYNC sincronizzerà ogni singolo file/directory dall'origine alla directory di destinazione. In alcune situazioni, potresti voler includere/escludere alcuni file dalla sincronizzazione. RSYNC offre opzioni utili come "-exclude" e "-include" per escludere/includere alcuni file. Passare il modello di file come valore per questi argomenti.
$ rsync -avn --exclude =--include =
Puoi anche definire la dimensione del file più grande che RSYNC dovrebbe sincronizzare. Per fare ciò, utilizzare il flag "-max-size" seguito dalla dimensione del file.
$ rsync -avn - -max -size = '10k'
Rsync ha un'altra caratteristica interessante nella manica. Non ha più bisogno del file di origine dopo la sincronizzazione? Rsync può farlo, nessun problema. Tuttavia, assicurati di non eseguire rsync con flag "-delete". Altrimenti, RSYNC eliminerà i file sincronizzati dalla destinazione!
$ RSYNC -AV-REMOVE-SOURCE-FILES
Pensieri finali
Questi sono solo uno scenario comune e semplice di utilizzo di rsync. Offre molto di più. È possibile automatizzare le operazioni RSYNC utilizzando il demone RSYNC o altri script. Spero 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. Funzionalità e utilizzo più approfonditi sono disponibili in Rysnc Man Page.
$ MAN RSYNC
Godere!