Tut terminale

I 20 migliori esempi di Rsync in Linux

I 20 migliori esempi di Rsync in Linux

Il comando Rsync (sincronizzazione remota) è un'utilità Linux/Unix utilizzata per sincronizzare e copiare file e directory sia localmente che in remoto. La maggior parte dei fanatici di Linux usa Rsync per eseguire il mirroring, il backup o la migrazione dei dati tra cartelle, dischi e reti. Una caratteristica notevole del comando Rsync è che utilizza l'"algoritmo di trasferimento delta"."

L'algoritmo di trasferimento delta funziona aggiornando la directory di destinazione con il contenuto della destinazione di origine. Se viene creata una modifica o un nuovo file nella directory di origine, solo la modifica specifica verrà copiata nella directory di destinazione quando si esegue il comando Rsync. Per sincronizzare file e directory tra la macchina locale e quella remota, Rsync utilizza SSH.

Installazione di Rsync in Linux

Il comando Rsync è preinstallato nella maggior parte dei sistemi operativi Linux. Tuttavia, questo potrebbe non essere il caso di alcune installazioni minime. Puoi installare Rsync eseguendo i comandi seguenti in un terminale.

Su CentOS e RHEL

yum install rsync -y

Su Ubuntu e altre distribuzioni Debian

sudo apt install rsync -y

Sintassi di base di Rsync

rsync opzioni origine destinazione

Alcune delle opzioni/parametri standard utilizzati con il comando Rsync:

-v: -verbose Output dettagliato
-r: copia i dati in modo ricorsivo
-z: comprime i dati del file
-h: fornisce l'output in un formato leggibile dall'uomo
-a: archivia file e directory durante la sincronizzazione
-progress Mostra lo stato di avanzamento delle attività di Rsync attualmente in esecuzione.

Puoi vedere tutte le opzioni disponibili per il comando Rsync usando l'opzione "-help".

$ rsync --help

Comando di aiuto di Rsync

I 20 migliori esempi di Rsync in Linux

Con queste informazioni dettagliate in mente, iniziamo con 20 utili comandi di esempio Rsync che puoi usare con i sistemi Linux. Il nostro sistema operativo preferito è Ubuntu 20.04 LTS; tuttavia, la sintassi dovrebbe funzionare anche per altre distribuzioni Linux con Rsync installato.

1. Copia/Sincronizza i file localmente con l'opzione -v (verbose)

Questo è il comando Rsync più elementare, anche per un principiante. In questo esempio, copieremo i file tra 'Originale' directory sul desktop alla 'Backup' nella directory '/etc.' cartella. Includeremo l'opzione -v (Verbose) in modo che rsync possa fornire informazioni su cosa sta succedendo.

rsync -v Originale/

rsync -v (verbose) comando

Una cosa da notare con Rsync è che, se la directory di destinazione non esiste, la creerà automaticamente. Vediamo l'esempio sotto dove vogliamo copiare i file nella directory “Foss"che non esiste.

Crea una directory con Rsync

2. Sincronizza/copia file e directory in modo ricorsivo con l'opzione -r

Nel comando precedente, se fosse presente una directory nel 'Originale', verrebbe saltata. Questo è illustrato nell'immagine qui sotto.

Comando Rsync di base

Per superare questo problema, usa l'opzione -r (ricorsiva).

Sincronizza i file in modo ricorsivo con -r

3. Sincronizzare/copiare file tra la macchina locale e la macchina remota

Prima di eseguire questa operazione, ci sono diversi parametri che è necessario conoscere sul server/macchina remoto: l'indirizzo IP, il nome utente e la password dell'utente.

La sintassi di base che utilizzeremo è:

rsync [opzioni] [file] [nome-utente remoto]@[indirizzo-ip]:/[destinazione]

Copiamo i file dal nostro 'Originale' directory sul desktop a un server remoto.

Sincronizza/copia i file in remoto con Rsync

4. Sincronizza/copia file e directory da un server remoto al tuo PC locale

Proprio come il comando precedente, avremo bisogno di conoscere l'indirizzo IP del server remoto. In questo esempio, sincronizzeremo i file nel 'Backup' cartella nella home directory del server sul nostro PC locale.

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

Sincronizza-Copia file da un server remoto a una macchina locale

5. Usa Rsync su SSH con l'opzione -e

Per garantire la sicurezza di file e cartelle, utilizzeremo Rsync over Secure Shell Protocol (SSH). Inoltre, quando si fornisce la password root/utente, SSH fornirà servizi di crittografia, garantendone la sicurezza.

Per usare SSH, aggiungeremo l'opzione -e che specifica il protocollo che vogliamo usare.

 rsync -vre ssh Original/* [email protected]:/home/tuts

Usa Rsync su SSH

6. Mostra i progressi con il comando Rsync

In situazioni in cui copi più file o un file enorme, conoscere i progressi sarebbe efficiente. Fortunatamente, rsync dispone di questa opzione -il '-progresso' opzione.

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

Mostra progressi con Rsync

7. Usa Rsync con l'opzione '-include'

Ci sono situazioni in cui desideri sincronizzare solo determinati file. Con il comando Rsync, fai in modo che '-includere'opzione per svolgere il compito. In questo esempio, sincronizzeremo solo i file che iniziano con la lettera "I".

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

Usa l'opzione -include con Rsync

8. Usa Rsync con l'opzione '-exclude' per ignorare file particolari

Con Rsync'-escludere', puoi escludere i file che non vuoi sincronizzare/copiare. In questo esempio, vogliamo ignorare tutti i file che iniziano con la lettera "I".

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

Usa Rsync con l'opzione '-exclude'

In alternativa, puoi usare entrambe le opzioni in un comando. Guarda l'esempio qui sotto.

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

Stiamo escludendo tutti i file tranne quelli che iniziano con la lettera "I".'

Usa entrambe le opzioni -include ed -exclude

9. Usa Rsync con il comando -delete

Ci sono situazioni in cui sono presenti file nella directory di destinazione, ma non nella cartella di origine. Per la sincronizzazione, sarebbe meglio rimuovere prima tali file dalla directory di destinazione. Fortunatamente, Rsync viene fornito con il '-Elimina', che lo fa automaticamente.

Se un file è presente nella directory di destinazione ma non nella sorgente, lo cancellerà.

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

Usa Rsync con l'opzione-delete

10. Imposta la dimensione massima dei file da trasferire con Rsync

Se sei interessato allo spazio di archiviazione o alla larghezza di banda per la sincronizzazione dei file remoti, devi utilizzare l'opzione "-max-size" con il comando Rsync. Questa opzione ti consente di impostare la dimensione massima di un file che può essere copiato.

Ad esempio, un '-dimensione massima=100k' trasferirà solo dati uguali o inferiori a 100 kilobyte.

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

Imposta dimensione massima con il comando Rsync

11. Elimina automaticamente i file di origine dopo un trasferimento riuscito

Prendi una situazione in cui hai un server di backup remoto e una directory di backup sul tuo PC. Esegui il backup dei dati nella cartella di backup sul tuo PC prima di sincronizzarli con il server di backup. Dopo ogni sincronizzazione, sarà necessario eliminare i dati nella directory di backup.

Fortunatamente, puoi farlo automaticamente con il '--rimuovere-file-sorgente' opzione.

Elimina i file di origine dopo un trasferimento riuscito

Eseguendo un comando 'ls' sulla cartella di origine, confermiamo che i file sono stati effettivamente eliminati.

12. Esegui una prova con Rsync

Per i neofiti che non sono sicuri del comando Rsync, puoi rovinare il contenuto della directory di destinazione e l'annullamento potrebbe essere altrettanto noioso. Con il '-funzionamento a secco', il comando Rsync ti darà un output di ciò che verrà eseguito, ma non lo farà.

Pertanto, puoi guardare questo output se è quello che ti aspetti prima di rimuovere il '-funzionamento a secco' opzione.

rsync -vr --dry-run Original/* [email protected]:/home/tuts/Backup

Esegui una prova a secco con Rsync

13. Imposta il limite di larghezza di banda richiesto per trasferire i file.

Se sei su una rete condivisa o esegui diversi programmi che necessitano di una connessione Internet, sarebbe efficiente impostare un limite di larghezza di banda richiesto per sincronizzare/copiare i file in remoto. Possiamo farlo con Rsync '-bwlimit' opzione.

Questa velocità è calcolata in kilobyte. Pertanto, quando '-bwlimit=1000'significa che solo 1000Kb possono essere trasferiti al secondo.

rsync -vr --bwlimit=1000 Original/* [email protected]:/home/tuts/Backup

Imposta il limite di larghezza di banda richiesto per trasferire i file

14. Sincronizza tutti i file con Rsync

Per impostazione predefinita, Rsync sincronizza solo i blocchi e i byte modificati. Pertanto, se avevi sincronizzato un file di testo prima e successivamente hai aggiunto alcuni testi al file di origine durante la sincronizzazione, verrà copiato solo il testo inserito. Se desideri sincronizzare nuovamente l'intero file, dovrai utilizzare l'opzione '-W''.

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

Sincronizza un intero file con Rsync

15. Non sincronizzare/copiare i file modificati nella directory di destinazione

Ci sono situazioni in cui hai apportato modifiche ai file presenti nella cartella di destinazione. Se esegui un comando Rsync, queste modifiche verranno sovrascritte da quelle nel file sorgente. Per evitarlo, usa l'opzione '-u'.

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

Usa l'opzione 'u' per evitare di modificare i file nella cartella Destinazione

16. Usa Rsync con l'opzione -i per visualizzare la differenza nei file tra sorgente e destinazione

Se desideri sapere quali nuove modifiche verranno apportate alla directory di destinazione, usa l'opzione '-i', che mostrerà la differenza nei file tra la directory di origine e quella di destinazione.

rsync -avzi Originale/ Backup/

Usa l'opzione -i per visualizzare la differenza nei file

Forma l'output nell'immagine sopra e vediamo un file chiamato 'ciao.pi' non presente nella directory di destinazione. Diamo un'occhiata ad alcuni di questi parametri.

d: mostra un cambiamento nel file di destinazione
f: rappresenta un file
t: mostra un cambiamento nei timestamp
s: indica un cambiamento nella dimensione di un file

17. Usa Rsync per copiare solo la struttura della directory

Puoi usare Rsync per sincronizzare solo la struttura della directory se non sei interessato ai file. Dovremo usare i parametri -f”+ */” -f”- *” prima della directory dei sorgenti source.

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

Usa Rsync per copiare una struttura di directory

18. Aggiungi il timbro della data al nome della directory

Se vuoi monitorare quando sono avvenuti i trasferimenti senza aprire le proprietà della directory, puoi facilmente aggiungere una data al nome di una directory. Ciò aggiungerà un timbro data a tutte le sincronizzazioni che fai con Rsync.

Per fare ciò, aggiungeremo $(data +\\%Y-\\%m-\\%d) alla directory di destinazione.

sudo rsync -rv Original/ /etc/$(date +\\%Y-\\%m-\\%d)

Aggiungi un timbro data a una directory

19. Copia un singolo file localmente

Per sincronizzare/copiare un singolo file con Rsync, dovrai specificare il percorso del file seguito dal percorso della directory di destinazione.

rsync -v Originale/heloo.py Backup/

Sincronizza un singolo file localmente

20. Copia di più file in remoto

Per copiare più file contemporaneamente, dovrai fornire il percorso a tutti loro. Questo metodo è efficiente solo per un piccolo numero di file.

rsync -vr /home/tuts/Desktop/Original/heloo.py /home/tuts/Desktop/Backup/indice.html [email protected]:/home/tuts/Backup

Copia più file contemporaneamente

Questo è tutto sui primi 20 utili esempi di Rsync che ti permetteranno di sincronizzare file e directory sia localmente che in remoto. Sentiti libero di lasciare il tuo feedback e commenti qui sotto.

Vulkan per utenti Linux
Con ogni nuova generazione di schede grafiche, vediamo gli sviluppatori di giochi spingere i limiti della fedeltà grafica e avvicinarsi di un passo al...
OpenTTD vs Simutrans
Creare la tua simulazione di trasporto può essere divertente, rilassante ed estremamente allettante. Ecco perché devi assicurarti di provare quanti pi...
Tutorial OpenTTD
OpenTTD è uno dei giochi di simulazione aziendale più popolari in circolazione. In questo gioco, devi creare una meravigliosa attività di trasporto. T...