Come quasi tutti i comandi in Linux, rsync ha una sintassi di base che dobbiamo seguire.
rsync [OPTION]... SRC [SRC]... DEST
In altre parole, comando + opzioni + cartella di origine + destinazione.
Successivamente, con alcuni esempi, spiegherò l'uso di questo comando.
Esempi di come usare il comando rsync
1.- Copia file o directory in locale
Per sincronizzare cartelle o file utilizzando rsync in locale, esegui semplicemente il comando seguente:
:~$ rsync -avzh [file] [destination]
Ad esempio, se desideri eseguire il backup di una cartella denominata Files
in un'altra chiamata backups
, sarebbe così:
:~$ rsync -avzh /home/user/Files/ /home/user/backups/
In questo caso, l'intero contenuto dei Files
la cartella verrà copiata nel Backup
cartella. Anche se la cartella non esiste, rsync la creerà.
Fai attenzione con la / alla fine della cartella di origine, se esegui questo comando:
:~$ rsync -avzh /home/user/Files /home/user/backups/
Il risultato è una cartella chiamata Files
verrà creato all'interno del Backup
cartella e il contenuto sarà lì. Diciamo che la struttura della directory a destinazione sarà /home/user/backups/Files/
Ora, le opzioni che utilizzo per questo comando aiutano molto a rendere il processo ottimale.
un :mantiene l'utente, il gruppo, le autorizzazioni, la data e l'ora, nonché i collegamenti simbolici.
v :mostra il risultato dell'esecuzione del comando.
z :questa opzione comprime la cartella o il file prima di eseguire la sincronizzazione o la copia. Utile in file e cartelle molto grandi.
h :utilizzato per rendere le unità più leggibili.
In questo modo è abbastanza semplice eseguire un backup di una cartella in locale.
2.- Sincronizzazione remota utilizzando il comando Linux rsync
In questa sezione, effettueremo la sincronizzazione con un computer remoto. Si consiglia di farlo utilizzando SSH in modo che i nostri file vengano trasferiti in modo sicuro.
Per questo comando, devi aggiungere l'opzione e che abilita l'uso di una shell esterna che in questo caso è SSH.
:~$ rsync -avhze ssh [folder-or-file] [user]@[host]:[destination]
Come possiamo vedere è abbastanza semplice, in questo caso sincronizzerò i Files
cartella in un host con indirizzo IP 192.168.1.23
nei Documents
cartella.
:~$ rsync -avhze ssh /home/user/Files [email protected]:/home/user1/Documents
Ed è così semplice da fare. Ma cosa succede se SSH non è in esecuzione sulla porta 22? Bene, possiamo specificare una porta specifica come segue:
:~$ rsync -avhze "ssh -p [port]" /home/user/Files [email protected]:/home/user1/Documents
3.- Elimina i file nella cartella sorgente
In questo caso, il processo è più simile a una mossa che a una copia. Tuttavia, è anche possibile farlo. Per farlo, aggiungi il --remove-source-files
opzione
:~$ rsync -avzh --remove-source-files /home/user/Files /home/user/backups/
Funziona anche da remoto:
:~$ rsync --remove-source-files -avhze ssh /home/user/Files [email protected]:/home/user1/Documents
Fai attenzione con questa opzione perché eliminerai tutto ciò che è nella cartella di origine.
4.- Includi o escludi file specifici
Il comando Linux rsync consente inoltre di escludere o includere file specifici durante la sincronizzazione. Questo viene fatto usando il --include
e --exclude
opzioni
Un esempio molto utile è sincronizzare solo i file con un'estensione, ad esempio JPG. Questo può essere fatto nel modo seguente:
:~$ rsync -ahvz --include "*.html" --exclude "*" /home/user/Files /home/user/backups/
Inoltre, queste opzioni possono essere utilizzate in una sincronizzazione remota.
5.- Testare il comando rsync prima della sincronizzazione
Con rsync, puoi eseguire operazioni piuttosto delicate sui server. Quindi è una buona idea testarlo prima di apportare modifiche. Qualcosa come un'anteprima.
Per questo, c'è il --dry-run
opzione:
:~$ rsync -avzh --dry-run --remove-source-files /home/user/Files /home/user/backups/
In questo modo saprai esattamente cosa farà il comando prima di apportare modifiche, prevenendo errori.
Bonus:alcune applicazioni grafiche per rsync
rsync è un comando con molte opzioni. E grazie a questo, altri sviluppatori hanno creato programmi in grado di gestirlo da un'interfaccia grafica.
Questi programmi, aiutano non solo il principiante ma anche l'utente più esperto che con pochi clic vuole utilizzare rsync.
Il primo è LuckyBackup che è un'applicazione meravigliosa. È abbastanza completo e ha molte opzioni.
Per scaricarlo, puoi visitare questo link e scegliere il pacchetto giusto.
La seconda opzione è Grsync che fornisce da un'interfaccia GTK una facilità d'uso abbastanza completa nell'uso di rsync. Forse non è completo come Luckybackup ma è molto completo e difficilmente perderai nessuna opzione.
Per installarlo, usa semplicemente il gestore di pacchetti della tua distribuzione. Ad esempio, in Debian, Ubuntu e derivati:
:~$ sudo apt install grsync
Con questi due strumenti, puoi sfruttare il comando rsync e saperne di più.
Conclusione
Il comando Linux rsync viene utilizzato per copiare i file in modo avanzato. E anche, questo comando è la base per altre applicazioni grafiche per facilitare il compito di fare backup.
Questo comando è molto potente e veloce ed è per questo che è diventato uno strumento che ogni amministratore di sistema deve conoscere. In ogni caso, in questo post, questi esempi aiutano a conoscere, almeno in maniera basilare, come funziona rsync.