GNU/Linux >> Linux Esercitazione >  >> Linux

Come eseguire il backup di file e directory utilizzando Rsync in Linux

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,

  1. esegui il backup dell'intero sistema,
  2. 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 Rsync
  • SRC - File/directory di origine
  • DEST - 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

Linux
  1. Come eseguire il backup dell'intero sistema Linux utilizzando Rsync

  2. Come archiviare file e directory in Linux [Parte 2]

  3. Come archiviare file e directory in Linux [Parte 1]

  4. Come comprimere ed estrarre file e directory in Linux usando gzip e bzip2

  5. Come trovare ed eliminare directory e file vuoti in Linux

Come eseguire il backup e il ripristino di file utilizzando Deja Dup in Linux

Come sincronizzare file e directory utilizzando Zaloha.sh

Come eseguire il backup e il ripristino di file utilizzando BorgBackup in Linux

Mantenere sincronizzati file e directory Linux con rsync

Come copiare file e directory nel terminale Linux

Come eliminare file e directory utilizzando la riga di comando di Linux