▷ Rsync Linux: esempi di utilizzo e comandi

L'uso dei comandi in Linux è più che naturale poiché questi sono stati il ​​​​cuore di Linux per molti anni, ecco perché dobbiamo essere consapevoli del modo in cui utilizziamo questi comandi poiché, così come alcuni sono pratici per compiti fondamentali, altri possono essere pericoloso se non li gestiamo correttamente. Uno dei comandi Linux più funzionali è il protocollo rsync che Solvetic ti spiegherà in dettaglio durante questo tutorial. Vediamo prima cos'è rsync.

Attualmente mantenere un'infrastruttura di qualsiasi dimensione senza alcun backup può essere considerato una follia, un disco può guastarsi in qualsiasi momento e potresti perdere informazioni preziose come la contabilità aziendale. In questo post parleremo di come utilizzare Rsync, uno dei migliori strumenti per i backup su sistemi *nix. Vedremo dagli esempi più basilari a quelli più avanzati con script ed esempi che puoi applicare nel tuo ambiente di lavoro. Sarà un manuale per sapere come usare rysnc.

La necessità di avere le stesse informazioni in luoghi diversi è sempre più forte, questo perché il nostro spazio di lavoro è variabile e vogliamo avere i nostri strumenti sempre con noi o anche come misure di backup.

Cos'è rsync?È uno strumento open source per il trasferimento di file e directory tra una posizione e l'altra. I suoi vantaggi si basano principalmente sulla compressione delle informazioni da inviare, consente di effettuare il trasferimento tramite un canale SSH e trasferisce solo i file e le parti di file che sono stati modificati invece di trasferire nuovamente l'intero file, qualcosa simile a ciò che accade quando si trasferiscono le differenze in un file sotto il controllo della versione di Git.

Il comando rsync (Remote Sync) è un comando sviluppato per attività di copia e sincronizzazione di file e directory sia in remoto che localmente su sistemi Linux o UNIX.

Con questo comando possiamo fare copie da:

  • Localmente
  • Utilizzo di una shell remota
  • Tramite un demone rsync remoto

Rsync utilizzaTra i diversi usi di rsync ci sono i seguenti:

  • Backup automatici su server o dischi remoti.
  • Sincronizzazione remota di file e directory.
  • Trasferimento file comune.

Vantaggi di Rsync

  • È più veloce di scp (Secure Copy) perché rsync utilizza un protocollo di upload che consente di trasferire solo la differenza tra i file, la prima volta trasferisce l'intero file, la seconda solo le modifiche che possono esistere.
  • È progettato per i backup remoti.
  • Supporta la copia di tutti i permessi dei file, ad esempio proprietario, gruppi software e collegamento reale.
  • Usa meno larghezza di banda utilizzando la compressione durante l'invio di file.

Rsync ha una funzionalità di trasferimento delta che consente di ridurre la quantità di dati inviati attraverso la rete consentendo di inviare solo le differenze tra i file di origine e i file esistenti nella destinazione remota, ecco perché rsync è l'ideale per il backup e la duplicazione.
Rsync agisce nel processo di ricerca dei file da trasferire utilizzando un algoritmo lqquick checkqq, che si occupa della ricerca di file che hanno subito qualche tipo di modifica.

Funzioni di RsyncAlcune delle sue caratteristiche principali sono:

  • Integra funzioni di opzioni di esclusione simili a GNU tar
  • Supporta la copia di collegamenti, dispositivi, proprietari, gruppi e autorizzazioni Linux
  • Aggiungi una modalità di esclusione CVS che consente di ignorare gli stessi file che CVS ignorerebbe nella sua funzione
  • Non richiede privilegi di superutente (root)
  • Possiamo usare una shell remota come ssh o rsh
  • Fornisce pipeline di trasferimenti di file per ridurre al minimo i costi di latenza di rete
  • Supporta demoni rsync autenticati o anonimi
  • È più veloce di scp

Vedremo come utilizzare i parametri rsync e rsync per poter eseguire attività come rsync copiare solo nuovi file o rsync eliminare i file di destinazione.

1. Come usare rsync

La sintassi per l'utilizzo di questo comando è la seguente:

 destinazione delle risorse delle opzioni di rsync 
Variabili RsyncUsando questa sintassi possiamo aggiungere alcune variabili come:

  • -v: modalità dettagliata.
  • -r: questa opzione copia i dati in modo ricorsivo senza lasciare timestamp e autorizzazioni durante il processo.
  • -a: modalità file che consente la copia ricorsiva dei file e conserva i collegamenti simbolici, i permessi dei file, la proprietà di utenti e gruppi e i timestamp.
  • -z: questa opzione comprime i dati nel file.
  • -h: modalità leggibile dall'uomo, numeri di output in un formato leggibile dall'uomo.

Vediamo ora alcuni esempi di come utilizzare questo comando. Alla fine del tutorial Solvetic ti darà altri parametri per usare rsync su Linux.

2. Come installare rsync

Passo 1
Nella maggior parte dei sistemi attuali, rsync è installato per impostazione predefinita, ma in caso contrario, possiamo eseguire quanto segue:

 yum install rsync (Red Hat - CentOS - Fedora) apt-get install rsync (Debian - Ubuntu)

INGRANDIRE

Passo 2
In ogni caso dobbiamo confermare l'installazione di rsync, in alcuni sistemi come Ubuntu 20 arriva già di default:

3. Copia file e copia directory con rsync


Il primo utilizzo di rsync consiste nel copiare o sincronizzare un file o una directory localmente. Vediamo come copiare file rsync, copiare directory con rsync e sincronizzare due directory con rsync.

Passo 1
Per questo eseguiremo quanto segue

 rsync -zvh "file" "destinazione" 

Passo 2
Lì possiamo vedere dettagli come:

  • Dati inviati
  • Quantità di dati ricevuti
  • Velocità di trasferimento
  • Dimensione complessiva

Passaggio 3
Se il caso è copiare una directory localmente, eseguiremo quanto segue:

 rsync -zvh "directory" "destinazione" 

4. Copia o sincronizza cartelle remote rsync o directory remota

Passo 1
Possiamo copiare o sincronizzare i file localmente su un computer remoto, per questo useremo la seguente sintassi:

 rsync -avz file / [email protected]: / destinazione / 

Passo 2
Ogni volta che utilizziamo l'IP remoto, dobbiamo inserire la password di root di detto computer remoto. Ora, se vogliamo copiare una directory remota sul nostro server locale, utilizzeremo la seguente sintassi:

 rsync -azvh [email protected]: / destinazione / directory / 

5. Rsync SSH come usare


SSH (Secure Shell) è un meccanismo di sicurezza aggiuntivo per il trasferimento dei dati, ottenuto poiché SSH utilizza una connessione sicura con crittografia altamente standardizzata.

Passo 1
Se vogliamo copiare un file locale su un computer remoto con SSH, dobbiamo utilizzare l'opzione "-e" con il nome del protocollo che si desidera utilizzare:

 rsync -avzhe ssh [email protected]: / destinazione / directory 

Passo 2
Per copiare un file locale su un server remoto utilizzeremo la seguente sintassi:

 rsync -avzhe ssh "file" [email protected]: / destinazione / 

Passaggio 3
Possiamo convalidare nella directory remota che il file o la directory è stata copiata:

INGRANDIRE

6. Rsync mostra l'avanzamento del trasferimento di file o directory


Questo è un metodo per una migliore gestione dei trasferimenti, questo si ottiene con il parametro -progress:
 rsync -avzhe ssh --progress / source [email protected]: / destinazione 

7. Includere o escludere le directory rsync


Le opzioni -include e -exclude sono opzioni che ci consentono di includere o escludere file, inoltre ci consentono di specificare i file o le directory da includere nella sincronizzazione o escludere file e cartelle che non devono essere trasferiti.

Il suo utilizzo è il seguente:

 rsync -avze ssh --include 'Lettera *' --exclude '*' [email protected]: / destinazione 

8. Rsync elimina file e directory


Nel caso in cui un file o una directory non sia nell'origine, ma sia già disponibile nella destinazione, possiamo eliminare quel file o directory durante il processo di sincronizzazione, per questo possiamo usare -delete per eliminare gli elementi che non sono sul computer di destinazione, eseguiremo quanto segue:
 rsync -avz --delete [email protected]: / destinazione 

9. Limite dimensione file Rsync


Con il parametro -max-size possiamo indicare qual è la dimensione massima degli oggetti da trasferire con rsync, questo aiuta a controllare lo spazio remoto:
 rsync -avzhe ssh --max-size = '300k' / origine / [email protected]: / destinazione 

10. Rsync elimina i file di origine se il trasferimento è andato a buon fine

Con la variabile -remove-source-files è possibile che i file che sono stati sincronizzati nella sorgente vengano eliminati solo se l'intero processo è stato corretto, per questo utilizzeremo quanto segue. Vediamo che il file sorgente è stato cancellato.

 rsync --remove-source-files -zvh "file" / destinazione / 

11. Esegui rsync senza influenzare i file


Questa è un'opzione ideale per le persone che non conoscono appieno la potenza di rsync poiché mostra cosa farà il comando ma non influenza l'origine, questo si ottiene con il parametro -dry-run, ad esempio. Possiamo vedere che il file è ancora lì.
 rsync --dry-run --remove-source-files -zvh "file" / destinazione / 

12. Limita larghezza di banda di sincronizzazione


Con il parametro -bwlimit sarà possibile definire quale velocità di rete rsync dovrebbe utilizzare per le attività di sincronizzazione, ciò si ottiene come segue:
 rsync --bwlimit = 200 -avzhe ssh / source / [email protected]: / destinazione 

13. Backup con Rsync


A volte dobbiamo eseguire il backup di determinate informazioni prima di apportare modifiche e in caso di errore durante il ripristino da Backup, inizieremo con un backup di laboratorio da una cartella all'altra. In questo modo creeremo un backup con rsync in modo completo e sicuro.

Passo 1
Iniziamo verificando che rsync sia installato.

 [utente @ Solvetic ~] $ che rsync / usr / bin / rsync
Passo 2
Creeremo 2 cartelle per l'origine e la destinazione dei file.
 mkdir {backup1, backup2} 
Passaggio 3
Creiamo diversi file nella cartella backup1, in questo caso la dimensione dei file non ha importanza.
 [utente @ Solvetic ~] $ touch backup1 / file {1… 75} 
Passaggio 4
La directory dovrebbe avere 75 file. Facciamo il backup.
 [utente @ Solvetic ~] $ ls backup1 / file1 file14 file19 file23 file28 file32 file37 file41 file46 file50 file55 file6 file64 file69 file73 file10 file15 file2 file24 file29 file33 file38 file42 file47 file51 file56 file60 file65 file7 file74 file11 file16 file20 file25 file3 file34 file39 file43 file48 file52 file57 file61 file66 file70 file75 file12 file17 file21 file26 file30 file35 file4 file44 file49 file53 file58 file62 file67 file71 file8 file13 file18 file22 file27 file31 file36 file40 file45 file5 file54 file59 file63 file68 file72 file9
Passaggio 5
Per eseguire il backup dei file su backup2 usiamo. La fonte deve terminare in / altrimenti copierebbe la sua cartella e non il contenuto.
 rsync -r backup1 / backup2 
Passaggio 6
Se entriamo nel backup2 possiamo vedere i 75 file possiamo anche verificare che sono 2 directory identiche usando diff.
 [utente @ Solvetic ~] $ diff backup1 backup2 
Passaggio 7
In caso di creazione di un collegamento software da un file nella directory 1
 ln -s file30 file100 
Passaggio 8
L'uso di rsync con -r non sincronizzerà il softlink in questo caso che usiamo. Se osserviamo questo momento, avremo il softlink sincronizzato.
 rsync -a backup1 / backup2 
NotaSe non siamo sicuri di cosa supporteremo, possiamo usare una simulazione con -n e insieme a -v può essere molto utile.
 [utente @ Solvetic ~] $ rsync -anv backup1 / backup2 invio elenco file incrementale inviato 606 byte ricevuti 12 byte 1236,00 byte/sec la dimensione totale è 6 speedup è 0.01 (DRY RUN)

14. Altri parametri di Rsync


Come accennato, questi sono alcuni dei parametri aggiuntivi da utilizzare con rsync su Linux:

Parametri Rsync

  • -t, --times: mantiene la modifica dell'ora
  • -g, --group: mantiene i gruppi
  • -o, --owner: mantiene il proprietario dell'oggetto
  • -B, --block-size = SIZE: forza una dimensione di blocco di checksum fissa
  • T, --temp-dir = DIR: questo valore crea file temporanei nella directory DIR
  • z, --compress: comprime i dati del file durante il trasferimento
  • -4, --ipv4: usa solo IPv4
  • -6, --ipv6: usa solo IPv6

Ci sono molte più variabili, ma queste sono più che sufficienti per ottenere il massimo da rsync su Linux. Abbiamo visto come usare rsync con le opzioni più utili, insieme a strumenti come cron e script bash, python avremo tutto il necessario per fare i nostri backup senza bisogno di strumenti di terze parti.

wave wave wave wave wave