Condividi su Facebook
Backup dei nostri file di configurazione
Scritto da: Monska il 29/03/2010 alle 23:40
Tag: Linux, Bash, Informatica.Visto 249 volte.


Backupper

Un argomento del quale stiamo trattando molto spesso, sono le svariate possibilità che abbiamo per eseguire un backup.
Abbiamo illustrato come eseguire dei backup remoti con rsync e ssh, e come procedere per avere dei backup incrementali con rdiff-backup.
Queste due tipologie di backup interessano principalmente chi vuole backuppare i propri dati in maniera efficiente.
Per degli amministratori di sistema, la cosa che può essere utile è backuppare solo determinati file di configurazione, o delle cartelle che contengono file utili per i servizi.
Questo permette di mantenere una traccia solo dei file realmente necessari che possono essere backuppati in poco spazio e essere tranquillamente spostati in caso di disaster recovery.

Vi proponiamo quindi uno script in grado di generare degli archivi compressi con i file di configurazione da noi indicati, da poter salvare poi in locale.
La peculiarità di questo script è che non genererà semplicemente un tarball contenete i soli file o le intere directory tutte in un'unica cartella, ma ricreerà l'albero delle directory dei nostri file.

Per prima cosa prepariamo un file contente i dati dei quali vogliamo eseguire un backup attenendoci a questa sintassi:

Code:

# HTTPD
/etc/httpd/conf/
/etc/httpd/conf.d/php.conf

# AMAVIS
/etc/amavisd/amavisd.conf


In pratica ogni linea corrisponde ad un file o ad una direcotry ed eventuali commenti vengono identificati con il carattere #.
Se la linea corrisponde ad una directory lo script creerà il backup dell'intera directory, mentre in caso di file questi verranno backuppati singolarmente.
Il nome di questo file verrà poi utilizzato nello script per identificare la lista dei dati. Nel nostro caso daremo al file il nome

Code:
list-of-backup

Vediamo ora lo script che si occupa della creazione del backup:

Code:

#!/bin/bash

# Path e nome del file contenente la lista
FILELIST="list-of-backup"
# Una directory temporanea per dei dati ausiliari
TMPDIR="/tmp/"$DATA"-"$ORA"-backup"

# La path in cui verrà salvato l'archivio
PATH_OF_BACKUP="/root/backupper/"
# Le opzioni da passare al comando di tar
# cjf => tar.bz2
# czf => tar.gz
TAR_OPT="cjf"
# Nome dell'archivio
# ATTENZIONE: scegliere l'estensione corretta in base alle TAR_OPT
FILENAME="$DATA-$ORA-backupper.tar.bz2"

DATA=$(date +%Y%m%d)
ORA=$(date +%H%M%S)

mkdir -p $TMPDIR

for i in $(cat $FILELIST | grep -vE "#")
do
if [ -d "$i" ]
then
cp -dax --parents "$i" "$TMPDIR"
else
cp -dax --parents "$i" "$TMPDIR"
fi
done

if [ "$PATH_OF_BACKUP" = "." ] || [ "$PATH_OF_BACKUP" = "./" ]
then
PATH_OF_BACKUP=$(pwd)"/"
fi

cd "$TMPDIR"
tar $TAR_OPT $PATH_OF_BACKUP$FILENAME *
rm -Rf $TMPDIR


Copia dello script è presente quì.

A fine esecuzione avremo il nostro archivio pronto per essere spostato in un posto sicuro.
È consigliabile inserire questo script in cron in modo da avere dei backup sistematici, e eventualmente copiare il tutto su di un backup server.
Buon backup a tutti.


Aggiungi un commento:
Nick:
captchaInserire il codice: