GNU/Linux >> Linux Esercitazione >  >> AlmaLinux

Come configurare il server di backup utilizzando Rsnapshot in Linux

Questa guida spiega cos'è Rsnapshot, come installare Rsnapshot in Linux e come configurare il server di backup utilizzando Rsnapshot in Linux.

1. Introduzione

Rsnapshot è un'utilità di snapshot del filesystem basata su rsync per sistemi operativi simili a Linux e Unix. Ti consente di creare facilmente istantanee periodiche di macchine locali e macchine remote su ssh.

La cosa buona di rsnapshot è che fa ampio uso di collegamenti reali ove possibile, per ridurre notevolmente lo spazio su disco richiesto.

Poiché rsnapshot conserva solo un numero fisso di snapshot, la quantità di spazio su disco utilizzata non aumenterà continuamente.

Rnapshot è un'applicazione di backup gratuita e open source che supporta i backup incrementali. È scritto interamente in perl e dovrebbe funzionare sulla maggior parte dei sistemi simili a Unix.

Senza ulteriori indugi, andiamo avanti e vediamo come installare, configurare e configurare il server di backup utilizzando Rsnapshot in Linux.

2. Installa Rsnapshot in Linux

Rsnapshot è incluso in molte distribuzioni Linux.

Installa Rsnaphot in Alpine Linux:

$ sudo apk add rsnapshot rsync

Installa Rsnapshot è Arch Linux, EndeavourOS e Manjaro Linux:

$ sudo pacman -S rsnapshot rsync

Installa Rsnapshot in Debian, Ubuntu, Linux Mint , Pop_OS!:

$ sudo apt install rsnapshot rsync

Installa Rsnapshot in CentOS, Fedora, RHEL, AlmaLinux, Rocky Linux:

Rsnapshot non è disponibile nei repository predefiniti dei sistemi operativi Enterprise come CentOS, RHEL, AlmaLinux e Rocky Linux. Devi abilitare [EPEL] repository per installare Rsnapshot.

$ sudo dnf install epel-release

Quindi, installa Rsnapshot usando il comando:

$ sudo dnf install rsnapshot rsync

Installa Rsnapshot in openSUSE:

$ sudo zypper install rsnapshot rsync

3. Configura il server di backup utilizzando Rsnapshot in Linux

Ai fini di questa guida, utilizzerò due sistemi di test.

Uno è un server di backup in esecuzione con AlmaLinux 8 e un altro funge da sistema client. Il client è in esecuzione con il desktop Fedora 34.

I dettagli del server e del client di backup sono riportati di seguito.

Server di backup:

  • OS :Sistema minimo AlmaLinux 8 64 bit
  • Indirizzo IP :192.168.122.25/24
  • Directory radice di Rsnapshot :/rsnapbackup
  • Directory di cui eseguire il backup :/home/otechnix/data/

Cliente :

  • OS :Fedora Workstation 34
  • Indirizzo IP :192.168.225.37/24
  • Directory di cui eseguire il backup :/home/sk/data/

3.1. Imposta l'autenticazione SSH senza password nel server di backup

Per eseguire il backup dei file di un sistema client remoto su SSH, è necessario impostare l'autenticazione SSH senza password per i sistemi client remoti, quindi il backup si connetterà automaticamente al sistema client senza password e eseguirà il backup dei dati del client.

Accedi come root utente e creare una coppia di chiavi SSH nel nostro sistema di server di backup.

# ssh-keygen

Non inserire alcuna passphrase , perché vogliamo che questi sistemi siano in grado di connettersi tra loro senza l'intervento dell'utente:

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:k/yIpwuk2lqEVxW4O0/6evTjquxCcGffQU0Kgm1ZvPk [email protected]
The key's randomart image is:
+---[RSA 3072]----+
|   o.==. o.      |
|  . =o.....      |
|   ... +.        |
|....+ o...       |
|.ooo.o oS.       |
| o.oo +.E+       |
| .o .*..o .      |
| +....ooo        |
|o..o===+..       |
+----[SHA256]-----+

Quindi, copia la chiave pubblica SSH su tutti i tuoi sistemi client remoti.

# ssh-copy-id [email protected]

Sostituisci sk e 192.168.225.37 nel comando precedente con il nome utente e l'indirizzo IP del sistema remoto. Immettere la password utente del sistema client per copiare il file della chiave pubblica:

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

Qui, 192.168.225.37 è l'indirizzo IP del mio sistema client remoto (es. Fedora Desktop).

Ora puoi accedere al sistema client senza alcuna password.

Ripetere il comando precedente per copiare la chiave pubblica ssh su tutti i sistemi client per configurare l'autenticazione senza password.

Successivamente, dobbiamo configurare il server di backup.

3.2. Configurazione del server di backup di Rsnapshot

Crea directory di backup root per salvare tutti i backup dei tuoi sistemi server e client.

Ai fini di questa guida, utilizzo /rsnapbackup/ come directory di backup principale. È la directory in cui memorizzerò tutti i backup.

Puoi definire la tua posizione a tua scelta per archiviare i backup.

Creiamo la directory di backup radice nel nostro server di backup con il comando:

# mkdir /rsnapbackup

Successivamente è necessario modificare e aggiornare la directory di backup radice, le directory di cui si desidera eseguire il backup e gli intervalli di backup nel file di configurazione predefinito di Rsnapshot /etc/rsnapshot.conf .

Prima di modificare la configurazione, si consiglia sempre di eseguire un backup del file di configurazione predefinito nel caso in cui sia necessario riconfigurare nuovamente rsnapshot.

# cp /etc/rsnapshot.conf /etc/rsnapshot.conf.bak

Ora, modifica il file di configurazione di rsnapshot usando il comando:

# nano /etc/rsnapshot.conf

La configurazione predefinita dovrebbe funzionare correttamente. Tutto quello che devi fare è definire le directory di backup e gli intervalli di backup.

Avviso: Tieni presente che dovresti specificare una barra finale alla fine dei nomi delle directory in /etc/rsnapshot.conf file. Supponiamo, ad esempio, di specificare il nome della directory come /rsnapbackup/ , ma non /rsnapbackup . Inoltre, devi usare tabulazioni (non spazi) tra elementi/campi .

Innanzitutto, impostiamo la directory di backup di root, ovvero definiamo la directory in cui vogliamo archiviare i backup del file system. Nel nostro caso, memorizzerò i backup in /rsnapbackup/ directory.

# All snapshots will be stored under this root directory.
#
snapshot_root   /rsnapbackup/

Ancora una volta, dovresti utilizzare il tasto TAB tra root_snapshot elemento e la directory di backup.

Nota: Rsnapshot non supporta una radice di snapshot remota tramite SSH.

Scorri un po' verso il basso e assicurati che le seguenti righe (contrassegnate in grassetto) non siano commentate:

[...]
#################################
# EXTERNAL PROGRAM DEPENDENCIES #
#################################

# LINUX USERS: Be sure to uncomment "cmd_cp". This gives you extra features.
# EVERYONE ELSE: Leave "cmd_cp" commented out for compatibility.
#
# See the README file or the man page for more details.
#
cmd_cp /usr/bin/cp

# uncomment this to use the rm program instead of the built-in perl routine.
#
cmd_rm /usr/bin/rm

# rsync must be enabled for anything to work. This is the only command that
# must be enabled.
#
cmd_rsync /usr/bin/rsync

# Uncomment this to enable remote ssh backups over rsync.
#
cmd_ssh /usr/bin/ssh

# Comment this out to disable syslog support.
#
cmd_logger /usr/bin/logger

# Uncomment this to specify the path to "du" for disk usage checks.
# If you have an older version of "du", you may also want to check the
# "du_args" parameter below.
#
cmd_du /usr/bin/du

[...]

Successivamente, dobbiamo definire gli intervalli di backup:

#########################################
# BACKUP LEVELS / INTERVALS #
# Must be unique and in ascending order #
# e.g. alpha, beta, gamma, etc. #
#########################################

retain alpha 6
retain beta 7
retain gamma 4
#retain delta 3

Qui, mantieni l'alfa 6 significa che ogni volta rsnapshot alpha eseguito, creerà un nuovo snapshot, ruoterà quelli vecchi e manterrà i sei backup più recenti nelle directory denominate alpha.0 , alpha.1 ,... alpha.5 nella directory principale di Rsnapshot. Quindi la prossima volta che viene eseguito il comando, alpha.5 la directory verrà eliminata.

Allo stesso modo, quando chiamiamo rsnapshot beta ogni volta creerà un nuovo snapshot, ruoterà quelli vecchi e manterrà i 7 backup più recenti (delta.0 - delta.6)

Tieni presente che l'alpha , beta , gamma e delta sono solo i nomi per definire gli intervalli di backup. Puoi anche definire i tuoi intervalli.

Ad esempio, puoi sostituire i livelli di backup predefiniti con alcuni nomi significativi a tua scelta come di seguito:

retain  hourly  24
retain  daily   7
retain  weekly  4
retain  monthly 12

Quando chiamiamo rnsapshot hourly , creerà un nuovo backup in <rsnapshot-root>/hourly.0/ directory. Quando esegui questo comando ogni volta, continuerà a creare nuove directory fino a <rsnapshot-root>/hourly.23/ .

Lo stesso vale per i backup giornalieri, settimanali e mensili.

Quindi, decommenta la seguente riga se vuoi impostare il file di registro per Rsnapshot:

logfile /var/log/rsnapshot

Se hai modificato la porta predefinita SSH , devi decommentare questa riga e menzionare il numero di porta valido qui:

ssh_args -p 2222

Infine, è necessario definire le directory di cui si desidera eseguire il backup. Trova le seguenti direttive nel tuo file di configurazione rsnapshot e imposta le posizioni della directory di backup.

###############################
### BACKUP POINTS / SCRIPTS ###
###############################

# LOCALHOST
backup /home/ostechnix/data/ myserverbackup/

Qui eseguirò il backup dei contenuti di /home/ostechnix/data/ directory e salvarli in /rsnapbackup/myserverbackup/ directory.

Avviso: Tieni presente che non ho specificato il percorso completo (ad esempio /rsnapbackup/myserverbackup/ ) nella configurazione precedente. Perché abbiamo già menzionato la directory di backup principale in precedenza. Quindi non è necessario specificare la directory radice di Rsnapshot qui.

Allo stesso modo, definisci la posizione di backup dei tuoi sistemi client remoti.

# REMOTEHOST
backup [email protected]:/home/sk/data/ myclientbackup/

Qui eseguirò il backup dei contenuti del /home/sk/data/ del mio sistema client remoto directory e salvali in /rsnapbackup/myclientbackup/ directory nel mio server di backup.

Ancora una volta, tieni presente che non ho specificato il percorso completo (/rsnapbackup/myclientbackup/ ) nella configurazione precedente. Perché abbiamo già definito la directory di backup radice.

Salva e chiudi /etc/rsnapshot.conf file.

Dopo aver apportato tutte le modifiche, esegui il comando seguente per verificare che il file di configurazione sia sintatticamente valido.

$ rsnapshot configtest

Se tutto va bene, vedrai il seguente output.

Syntax OK

3.3. Avvia i backup

Esegui il comando seguente per avviare manualmente il backup utilizzando Rsnapshot.

# rsnapshot alpha

Il primo backup richiederà da pochi minuti a diverse ore a seconda delle dimensioni dei backup. I backup successivi saranno molto più veloci, perché Rsnapshot eseguirà il backup solo delle differenze.

Allo stesso modo, puoi avviare altri livelli di backup:

# rsnapshot beta
# rsnapshot gamma
# rsnapshot daily

3.4. Verifica e visualizzazione dei backup

Verifichiamo se i backup sono realmente archiviati nella directory di backup radice nel server di backup.

# ls /rsnapbackup/

Vedrai il seguente output:

alpha.0

Controlla il contenuto di alpha.0 directory:

# ls /rsnapbackup/alpha.0/

Vedrai che ci sono due directory create automaticamente, una per il backup locale (myserverbackup) e un'altra per i sistemi remoti (myclientbackup).

myclientbackup  myserverbackup

Per controllare i backup del sistema client, esegui:

# ls /rsnapbackup/alpha.0/myclientbackup/

Controlla i backup del sistema del server (sistema locale):

# ls /rsnapbackup/alpha.0/myserverbackup/

Quando esegui Rnaspshot ciascuno, creerà nuove directory come alpha.0 , alpha.1 e così via, a seconda del numero di livelli di conservazione configurati.

# ls /rsnapbackup/
alpha.0  alpha.1

Il alpha.0 directory conterrà il backup più recente.

3.5. Pianifica i backup

Non è necessario eseguire il comando rsnapshot per creare backup ogni volta. Basta definire un processo cron per automatizzare i processi di backup a intervalli regolari.

Per fare ciò, crea un nuovo file di lavoro cron per rsnapshot:

# nano /etc/cron.d/rsnapshot

Aggiungi le seguenti righe:

0 */4 * * *     /usr/bin/rsnapshot alpha
50 23 * * *     /usr/bin/rsnapshot beta
00 22 1 * *     /usr/bin/rsnapshot delta

La prima riga indica che ci saranno sei alfa istantanee scattate ogni giorno (a 0,4,8,12,16 e 20 ore), beta istantanee scattate ogni sera alle 23:50 e delta le istantanee verranno scattate alle 22:00 del primo giorno di ogni mese. Puoi regolare i tempi secondo il tuo desiderio. Salva e chiudi il file.

Fatto! D'ora in poi, Rsnapshot eseguirà automaticamente il backup dei tuoi dati all'ora definita.

Per maggiori dettagli, fare riferimento alle pagine man.

# man rsnapshot

4. Ripristina file

Ripristinare i file è facile! Se hai sudo o root accedere al server di backup, puoi semplicemente copiare i file dalla directory principale di Rsnapshot, ad esempio /rsnapbackup/ .

5. Conclusione

Configurare un server di backup con Rsnapshot in Linux non è così difficile. La configurazione iniziale può sembrare difficile e richiedere un po' di tempo. Ma una volta impostato correttamente il server di backup di Rsnapshot, funzionerà per sempre, senza alcun intervento da parte dell'utente.

Risorse:

  • Sito web di Rsnapshot
  • Repository GitHub di Rsnapshot

Lettura correlata:

  • Come eseguire il backup dell'intero sistema Linux utilizzando Rsync
  • Come eseguire il backup di file e directory utilizzando Rsync in Linux
  • Come eseguire il backup e il ripristino di file utilizzando Deja Dup in Linux
  • Come eseguire il backup e il ripristino del sistema Linux con Timeshift
  • 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

AlmaLinux
  1. Come creare un backup

  2. Come configurare il server di registrazione centralizzato utilizzando Rsyslog

  3. Come installare e configurare cPanel su un server Linux

  4. Come configurare SSH senza password su Linux

  5. Come configurare il tunnel SSH inverso su Linux

Come monitorare i server Linux utilizzando CloudStats

Come configurare il server multimediale in streaming utilizzando Jellyfin in Linux

Come eseguire il backup del filesystem Linux utilizzando il comando dump

Come eseguire un backup Linux remoto utilizzando SSH

Come eseguire il backup dell'host Linux remoto utilizzando l'utilità rsnapshot rsync

Come configurare il server e il client VPN Linux utilizzando OpenVPN