Marzo 6, 2022

Come eseguire il backup di un sistema Debian usando Backupninja

Ultimo aggiornamento il 19 settembre 2020 di Gabriel Cánepa

La prudenza o l’esperienza di un disastro possono insegnare ad ogni amministratore di sistema l’importanza di eseguire frequenti backup del sistema. Puoi farlo scrivendo buoni vecchi script di shell o usando uno (o più) dei molti strumenti di backup disponibili per il lavoro (ad esempio, Clonezilla, Duplicity). Quindi, più strumenti conosci, più decisioni informate prenderai quando implementerai una soluzione di backup.

In questo articolo presenteremo Backupninja, uno strumento di backup del sistema leggero e facile da configurare. Con l’aiuto di programmi come rdiff-backup, duplicity, mysqlhotcopy e mysqldump, Backupninja offre funzionalità di backup comuni come backup remoti, sicuri e incrementali del file system, backup crittografati e backup del database MySQL/MariaDB. È possibile abilitare selettivamente i rapporti e-mail di stato e eseguire il backup delle informazioni generali sull’hardware e sul sistema. Un punto di forza chiave di Backupninja è una procedura guidata basata su console integrata (chiamata ninjahelper) che consente di creare facilmente file di configurazione per vari scenari di backup.

Il rovescio della medaglia, per così dire, è che Backupninja richiede altri programmi di supporto da installare al fine di sfruttare appieno tutte le sue caratteristiche. Mentre il pacchetto RPM di Backupninja è disponibile per le distribuzioni basate su Red Hat, le dipendenze di Backupninja sono ottimizzate per Debian e le sue derivate. Pertanto non è consigliabile provare Backupninja per i sistemi basati su Red Hat.

In questo tutorial, tratteremo l’installazione di Backupninja per le distribuzioni basate su Debian.

Installazione di Backupninja

Eseguire il seguente comando come root:

# aptitude install backupninja

Durante l’installazione, verranno creati diversi file e directory:

  • /usr/sbin/backupninja è lo script di shell bash principale.
  • /etc/cron.d/backupninja, per impostazione predefinita, indica a cron di eseguire lo script principale una volta all’ora.
  • /etc/logrotate.d/backupninja ruota i log creati dal programma.
  • /etc/backup.d/ è la directory in cui risiedono i file di configurazione per le azioni di backup.
  • /etc/backupninja.conf è il file di configurazione principale che include le opzioni generali. È ben commentato e spiega ogni opzione in dettaglio.
  • /usr/share/backupninja è la directory in cui si trovano gli script utilizzati da Backupninja (ovvero gestori). Questi sono gli script che sono incaricati di fare il lavoro effettivo. In questa directory troverai anche i file .helper, che vengono utilizzati per configurare e configurare i menu ninjahelper.
  • /usr/share/doc/backupninja/examples contiene modelli per i file di configurazione delle azioni (il tipo di file creati tramite ninjahelper).

Esecuzione di ninjahelper per la prima volta

Quando proviamo a lanciare ninjahelper, possiamo vedere che potrebbe essere necessaria una dipendenza interna. Se richiesto, immettere yes e premere il tasto ENTER per installare dialog (uno strumento che visualizza finestre di dialogo user-friendly dagli script della shell).

Quando premi Invio dopo aver digitato sì, Backupninja installerà la finestra di dialogo e presenterà la seguente schermata una volta terminata.

Esempio 1: Backup di hardware e informazioni di sistema

Dopo aver avviato ninjahelper, creeremo una nuova azione di backup:

Se i programmi di supporto necessari non sono installati, ci verrà presentato con le seguenti schermate. Ignorare questo passaggio se questi pacchetti sono già stati installati sul sistema.

Il passaggio successivo consiste nella selezione degli elementi che si desidera far parte di questo backup. I primi quattro sono selezionati per impostazione predefinita, ma è possibile deselezionarli premendo la barra spaziatrice.

Una volta terminato, premere OK per continuare. Sarete in grado di scegliere se si desidera utilizzare il file di configurazione predefinito per questa azione di backup (/etc/backup.d/10.sys), o se si desidera crearne uno nuovo. In quest’ultimo caso, un nuovo file con lo stesso contenuto di quello predefinito verrà creato nella stessa directory ma denominato 11.sys, e così via per future azioni di backup del sistema. Nota che puoi modificare il file di configurazione una volta creato con il tuo editor di testo preferito.

Esempio 2: Incrementale Rsync Pull Backup di una directory remota

Come molto probabilmente sapete, rsync è ampiamente utilizzato per sincronizzare file e cartelle su una rete. Nell’esempio seguente discuteremo un approccio per adottare backup pull incrementali di una directory remota con hardlinking per salvare i dati storici e memorizzarli nel nostro file server locale. Questo approccio ci aiuterà a risparmiare spazio e aumentare la sicurezza sul lato server.

Passaggio 1: Scrivere uno script personalizzato nella directory /etc/backup.dcon i seguenti contenuti e chmod in 600. Si noti che questa directory può contenere, oltre ai semplici file di configurazione, script che si desidera eseguire quando viene eseguito Backupninja, con il vantaggio di utilizzare le variabili presenti nel file di configurazione principale.

# REMOTE USERuser=root# REMOTE HOSThost=dev1# REMOTE DIRECTORYremotedir=/home/gacanepa/# LOCAL DIRECTORYlocaldir=/home/gacanepa/backup.0# LOCAL DIRECTORY WHERE PREVIOUS BACKUP WAS STOREDlocaldirold=/home/gacanepa/backup.1mv $localdir $localdirold# RSYNCrsync -av --delete --recursive --link-dest=$localdirold $host:$remotedir $localdir

Nella configurazione precedente, l’opzione --link-dest di rsync viene utilizzata per collegare i file invariati (in tutti gli attributi) da $localdir-oldalla directory di destinazione ($localdir).

Passaggio 2: Prima che Backupninja venga eseguito per la prima volta, la directory principale (/home/gacanepa in questo caso) è vuota. La prima volta che eseguiamo:

# backupninja -n

Viene creata la directory backup.0e successivamente nel processo il suo nome viene modificato in backup.1.

La seconda volta che eseguiamo Backupninja, backup.0 viene ricreato e backup.1 viene mantenuto.

Passaggio 3: verificare che i contenuti di backup.1 siano collegamenti fissi ai file in backup.0 confrontando i rispettivi numeri di inode e le dimensioni della directory.

Conclusione

Backupninja non è solo un classico strumento di backup, ma anche un’utilità facile da configurare. Puoi scrivere i tuoi gestori per eseguire Backupninja secondo i singoli file di configurazione situati in /etc/backup.d, e puoi persino scrivere helper per ninjahelper per includerli nella sua interfaccia principale.

Ad esempio, se si crea un gestore denominato xmodulo in /usr/share/backupninja, verrà eseguito per impostazione predefinita ogni file con estensione .xmoduloin /etc/backup.d. Se si decide di aggiungere il gestore xmodulo a ninjahelper, è possibile scrivere l’helper corrispondente come xmodulo.helper. Inoltre, se vuoi che Backupninja esegua uno script arbitrario, aggiungilo a /etc/backup.d e sei a posto. Fare riferimento a questo tutorial Backupninja per i dettagli sulla creazione di un piano di backup personalizzato.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.