Cerchi una soluzione affidabile e robusta per il backup dei tuoi dati in Linux? Risincronizzazione ti ho coperto! Questa guida ti guida attraverso i passaggi per eseguire il backup di file e directory utilizzando Rsync in Linux.
1. Introduzione
Se non esegui mai il backup dei tuoi dati considerando che tutto funzionerà correttamente, direi che ti sbagli.
Basta chiedere a qualsiasi utente Linux là fuori, condivideranno il dolore di non eseguire il backup del proprio sistema/dati. Da principiante, ho fatto quell'errore una volta e ho imparato l'importanza del backup.
Esistono molti strumenti di backup per piattaforme Linux e Unix. Risincronizzazione (Sincronizzazione remota) è considerato uno degli strumenti di backup più utilizzati e affidabili.
2. Eseguire il backup di file e directory utilizzando Rsync in Linux
Usando Rsync, possiamo,
- esegui il backup dell'intero sistema,
- o eseguire il backup di singoli file e directory.
Nel primo tipo, copiamo l'intero file system Linux su un dispositivo esterno o su una condivisione di rete. È possibile utilizzare questa copia per riportare la macchina allo stato originale in caso di guasto del sistema.
Il secondo tipo è il backup o la copia solo dei file e delle directory selettivi. Ad esempio, puoi copiare i file di configurazione importanti o l'intero $HOME
directory ed escludere tutto il resto.
Ti abbiamo già mostrato come fare il backup dell'intero sistema Linux utilizzando Rsync . Questa guida si concentra sui file e le directory di backup selettivi utilizzando Rsync in Linux.
2.1. Scelta del supporto di memorizzazione
Come primo passo, decidi dove eseguire il backup dei dati. È molto importante!
Puoi eseguire il backup dei tuoi dati su un disco rigido esterno, un cloud storage o un NAS (Network-attached Storage). Un'opzione semplice ed economica consiste nell'utilizzare un disco rigido esterno.
Se nel computer sono presenti due unità separate, è possibile utilizzare una qualsiasi delle unità per eseguire il backup dei dati considerando che entrambe non si guasteranno contemporaneamente.
Nota:
Se prendi sul serio il backup, non inserire il backup nella stessa unità. Usa sempre unità esterna, unità secondaria, condivisione di rete e archiviazione cloud, ecc.
A scopo dimostrativo, utilizzerò 1 TB disco rigido esterno in questa guida.
2.3. Eseguire il backup dei file utilizzando Rsync
La sintassi generale di Rsync per copiare i dati da una posizione all'altra è:
rsync [OPTION…] SRC… [DEST]
Ecco,
OPTION
- l'elenco delle opzioni RsyncSRC
- File/directory di origineDEST
- Destinazione
Ecco un semplice comando Rsync per eseguire il backup o copiare il file da una posizione all'altra nel sistema locale stesso.
$ rsync src_file dest_file
Esempi:
$ rsync -auv ostechnix.txt ostechnix-bak.txt
Ecco,
-a
- Modalità di archiviazione (mantenendo le proprietà dei file e i collegamenti simbolici)-u
- Salta i file più recenti sul lato ricevente.-v
- Modalità dettagliata
Il comando precedente salva il file di backup ostechnix-bak.txt
file nella directory corrente. Puoi anche specificare una directory di destinazione diversa come di seguito:
$ rsync -auv ostechnix.txt Downloads/ostechnix-bak.txt
Se non specifichi il nome del file di destinazione, Rsync utilizzerà lo stesso nome del file di origine nel file di destinazione.
Il salvataggio dei file di backup nello stesso disco non è in realtà un backup. Devi salvare i dati di backup su un'unità esterna o una condivisione di rete o almeno in una partizione diversa.
Ad esempio, il seguente comando esegue il backup del file sulla mia unità esterna:
$ rsync -auv ostechnix.txt /media/karthick/"My Passport"/
Rsync ha molte opzioni avanzate. Dai un'occhiata al seguente esempio:
$ rsync -azvhP ostechnix.txt /media/karthick/"My Passport"/
Questo comando trasferisce il file in modalità archivio (per preservare gli attributi) e compresso (zippato) con una barra di avanzamento dettagliata e leggibile dall'uomo.
2.4. Eseguire il backup delle directory utilizzando Rsync
Invece di eseguire il backup di un singolo file, puoi inserire tutti i file in una directory ed eseguire il backup di quella directory con Rsync. Questo è utile durante il mirroring e la sincronizzazione dei dati.
Ai fini di questa guida, ti mostrerò come eseguire il backup della directory HOME utilizzando Rsync.
2.4.1. Eseguire il backup della directory HOME utilizzando Rsync
Rsync è uno strumento di copia file incrementale. Significato:sincronizza solo i dati nuovi o modificati nella directory di origine (ad esempio /home
nel nostro caso) invece di sincronizzare nuovamente tutti i dati da zero.
Per eseguire il backup del mio $HOME
directory sul mio disco esterno, ho usato il seguente comando:
$ rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/
Analizziamo il comando precedente e vediamo cosa fa ciascuna opzione.
- La bandiera
-a
è la combinazione di molte opzioni. Questo flag si occupa della copia ricorsiva e della conservazione degli attributi come il permesso di file/directory, proprietario, ecc. - La bandiera
-v
abiliterà la modalità dettagliata che fornirà più log nel terminale quando esegui il comando rsync. - Il flag
-x
limiterà rsync per sincronizzare i dati entro i limiti del file system. Se hai montato un file system all'interno della tua home directory, questo verrà saltato durante l'operazione di sincronizzazione. - La bandiera
-P
è la combinazione di due bandiere. Mostrerà l'avanzamento di ogni sincronizzazione e manterrà i file parzialmente trasferiti. - Il flag
--delete
eliminerà tutte le directory e i file che non sono disponibili nell'origine ma disponibili nella destinazione. Devi stare molto attento durante l'utilizzo della bandiera. - Il flag
--exclude-from=File
accetta un file come argomento. Questo file contiene l'elenco di file e directory che verranno ignorati da rsync.
Ho creato un file chiamato ignore_list.txt
che contiene i file e le directory che devono essere esclusi.
Nel comando precedente, questa parte --exclude-from=/home/karthick/Work/Backup/ignore_list.txt
definisce l'elenco di esclusione.
Ecco il contenuto di ignore_list.txt
file:
L'elenco degli articoli da escludere dall'immagine sopra è una mia scelta personale e potrebbe differire per te. Modifica il parametro in base al tuo ambiente.
Le ultime due parti del comando Rsync sopra sono le posizioni di origine e destinazione. Nel mio caso, l'origine è la mia directory $HOME e la destinazione è il mio disco esterno. Sostituisci origine e destinazione in base al tuo ambiente.
Avviso: Se vuoi conoscere il punto di montaggio per il tuo disco esterno, esegui lsblk
comando.
$ lsblk sdb 8:16 0 931.5G 0 disk └─sdb1 8:17 0 931.5G 0 part /media/karthick/My Passport
Prima di eseguire rsync
comando per la prima volta, si consiglia sempre di eseguire una corsa a secco . La prova a secco simulerà quali modifiche verranno apportate. Usa lo stesso comando ma con il -n
bandiera.
$ rsync -avxP -n --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/
Risultato di esempio:
sending incremental file list karthick/ karthick/.bash_history 20,527 100% 0.00kB/s 0:00:00 (xfr#1, ir-chk=1056/1060) karthick/.shutter/ karthick/.shutter/drawingtool.xml 228 100% 4.54kB/s 0:00:00 (xfr#2, ir-chk=1037/1060) karthick/.shutter/profiles/ karthick/Pictures/ karthick/Pictures/Selection_001.png 37,626 100% 349.94kB/s 0:00:00 (xfr#3, to-chk=47/3001) karthick/Pictures/Selection_002.png 25,815 100% 227.12kB/s 0:00:00 (xfr#4, to-chk=46/3001) karthick/Pictures/Selection_003.png 63,275 100% 532.69kB/s 0:00:00 (xfr#5, to-chk=45/3001) karthick/Pictures/Selection_004.png 77,965 100% 581.20kB/s 0:00:00 (xfr#6, to-chk=44/3001) karthick/Pictures/Selection_005.png 75,863 100% 532.99kB/s 0:00:00 (xfr#7, to-chk=43/3001) karthick/Pictures/Selection_006.png 11,628 100% 75.20kB/s 0:00:00 (xfr#8, to-chk=42/3001) karthick/Pictures/Selection_007.png 24,311 100% 150.26kB/s 0:00:00 (xfr#9, to-chk=41/3001) karthick/Work/Backup/ karthick/Work/Backup/home_dir_backup.sh 764 100% 4.34kB/s 0:00:00 (xfr#10, to-chk=20/3001) karthick/Work/Backup/home_dir_backup.sh~ 796 100% 4.37kB/s 0:00:00 (xfr#11, to-chk=19/3001) karthick/Work/Backup/ignore_list.txt 182 100% 1.00kB/s 0:00:00 (xfr#12, to-chk=18/3001) karthick/Work/Backup/ignore_list.txt~ 182 100% 1.00kB/s 0:00:00 (xfr#13, to-chk=17/3001) ... ... ... sent 88,424 bytes received 9,459 bytes 195,766.00 bytes/sectotal size is 3,028,935,519 speedup is 30,944.45 (DRY RUN)
Se tutto va come previsto, rimuovi -n
contrassegna ed esegui il comando per eseguire il backup dei tuoi dati.
$ rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/
A seconda delle dimensioni, la prima corsa richiederà del tempo.
sending incremental file list karthick/ karthick/.bash_history 20,527 100% 0.00kB/s 0:00:00 (xfr#1, ir-chk=1056/1060) karthick/.shutter/ karthick/.shutter/drawingtool.xml 228 100% 4.54kB/s 0:00:00 (xfr#2, ir-chk=1037/1060) karthick/.shutter/profiles/ karthick/Pictures/ karthick/Pictures/Selection_001.png 37,626 100% 349.94kB/s 0:00:00 (xfr#3, to-chk=47/3001) karthick/Pictures/Selection_002.png 25,815 100% 227.12kB/s 0:00:00 (xfr#4, to-chk=46/3001) karthick/Pictures/Selection_003.png 63,275 100% 532.69kB/s 0:00:00 (xfr#5, to-chk=45/3001) karthick/Pictures/Selection_004.png 77,965 100% 581.20kB/s 0:00:00 (xfr#6, to-chk=44/3001) karthick/Pictures/Selection_005.png 75,863 100% 532.99kB/s 0:00:00 (xfr#7, to-chk=43/3001) karthick/Pictures/Selection_006.png 11,628 100% 75.20kB/s 0:00:00 (xfr#8, to-chk=42/3001) karthick/Pictures/Selection_007.png 24,311 100% 150.26kB/s 0:00:00 (xfr#9, to-chk=41/3001) karthick/Work/Backup/ karthick/Work/Backup/home_dir_backup.sh 764 100% 4.34kB/s 0:00:00 (xfr#10, to-chk=20/3001) karthick/Work/Backup/home_dir_backup.sh~ 796 100% 4.37kB/s 0:00:00 (xfr#11, to-chk=19/3001) karthick/Work/Backup/ignore_list.txt 182 100% 1.00kB/s 0:00:00 (xfr#12, to-chk=18/3001) karthick/Work/Backup/ignore_list.txt~ 182 100% 1.00kB/s 0:00:00 (xfr#13, to-chk=17/3001)… … … sent 3,029,863,865 bytes received 51,335 bytes 53,626,817.70 bytes/sec total size is 3,028,934,994 speedup is 1.00
2.4.2. Crea script di backup
Ricordare un comando lungo potrebbe essere difficile. Per evitare di digitare il lungo rsync
comando nel terminale, puoi creare un semplice script BASH e richiamarlo ogni volta che vuoi avviare il backup.
Crea uno script chiamato home_dir_backup.sh
:
$ nano home_dir_backup.sh
Aggiungi le seguenti righe:
#!/usr/bin/env bash # PURPOSE : RSYNC COMMAND TO BACKUP MY HOME DIRECTORY TO EXTERNAL DEVICE.. # REPLACE SOURCE, DESTINATION AND EXCLUDE ACCORDING TO YOUR ENVIRONMENT. rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/
Aggiungi, rimuovi o modifica le opzioni Rsync secondo le tue esigenze. Cambia anche i percorsi di origine e di destinazione con i tuoi. Salva e chiudi il file.
Rendi eseguibile lo script:
$ chmod +x <path-to-home_dir_backup.sh>
Ora esegui lo script in qualsiasi momento per avviare il backup della directory $HOME:
$ ./path-to-home_dir_backup.sh
Usa un nome di script più breve per ricordarlo facilmente.
Puoi anche creare un collegamento virtuale per il file di script in /usr/bin
o qualsiasi directory specifica dell'utente disponibile in $PATH
variabile.
2.4.3. Crea alias
Un altro modo per evitare di digitare comandi lunghi è utilizzare alias .
Modifica il tuo ~/.bashrc
file e aggiungi la seguente riga alla fine:
alias backup="rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick / media/karthick/"My Passport"/"
Fonte il bashrc
file per rendere immediatamente effettive le modifiche:
$ source ~/.bashrc
Ora esegui semplicemente il seguente comando per eseguire il backup della directory $HOME:
$ backup
Sta a te decidere cosa vuoi usare. Puoi creare un alias o creare uno script ed eseguire rsync attivando lo script. Nel mio caso, ho creato uno script e quindi creato un alias per quello script.
3. Pianifica il backup
Puoi usare cron
utilità di pianificazione per pianificare l'esecuzione dei processi di backup in un determinato momento in un determinato giorno.
Modifica i lavori cron dell'utente corrente usando il comando
$ crontab -e
Definisci il tuo programma di backup. Supponiamo, ad esempio, di eseguire il backup ogni giorno alle 3 del mattino , utilizza la seguente riga:
0 3 * * * <rsync-command-to-execute>
A seconda delle tue esigenze, puoi pianificare lavori giornalieri, settimanali o mensili.
Se non conosci Cron Jobs, abbiamo compilato un elenco di utili esempi di cron job per pianificare attività in Linux. Per maggiori dettagli sull'utilizzo di cron, fare riferimento alla seguente guida.
- Una guida per principianti a Cron Jobs
4. Frontend grafici Rsync
Se sei un nuovo utente di Linux, potresti avere difficoltà a comprendere tutte le opzioni e i flag di Rsync. Nessun problema! Sono disponibili alcuni strumenti grafici di frontend per Rsync. Uno di questi strumenti è Grsync .
Grsync è una semplice interfaccia utente grafica per Rsync. Non è necessario memorizzare alcun comando Rsync e le sue opzioni. Puoi fare tutto tramite una GUI facile da usare.
Per maggiori dettagli, fare riferimento alla seguente guida:
- Grsync:un semplice frontend grafico per Rsync
5. Conclusione
In questa guida, abbiamo esaminato come eseguire il backup di file e directory utilizzando Rsync in Linux. Come puoi vedere, copiare file e directory con Rsync è molto semplice!
Ti abbiamo anche mostrato come eseguire il backup della tua home directory utilizzando il comando rsync e alcuni dei modi per eseguirlo e pianificarlo.
Questo metodo può essere applicato anche a qualsiasi directory o struttura di file in Linux per eseguire il backup dei dati. Se pensi di avere una soluzione di backup migliore, ci piacerebbe sentirla da te tramite la sezione commenti qui sotto.
Lettura correlata:
- Riprendi i file parzialmente trasferiti su SSH utilizzando Rsync
- Come eseguire il backup e il ripristino di file utilizzando Deja Dup in Linux
- Come configurare il server di backup utilizzando Rsnapshot
- Come sincronizzare i file con Unison su Linux
- Come sincronizzare directory locali e remote in Linux
- Come sincronizzare file e directory utilizzando Zaloha.sh
- CYA:utilità di ripristino e snapshot di sistema per Linux
- Restic:un'applicazione di backup veloce, sicura ed efficiente