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:
/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:
Vediamo ora lo script che si occupa della creazione del backup:
Code:
# 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.
Tags
Apache Bash Elastix Firewall Firma digitale Geolocazione Grafica Informatica Internet Java Linux OpenMoko PHP Programmazione Python Reti Ricetta SEO Sicurezza Sistemi Operativi Varie Virtualizzazione VoIPLink ad altri blog:


