Zeroshell – Backup schedulato della configurazione su usb
Finalmente un articoletto su uno dei miei progetti preferiti: Zeroshell
Zeroshell è una distribuzione Linux per server e dispositivi embedded il cui scopo è fornire i principali servizi di rete (uno stupendo Firewall) creatura di Fulvio Ricciardi che non finirò mai di ringraziare per il lavoro svolto e per averlo messo a disposizione della comunità. Qui sotto un’immaginetta per farvi un’idea di quello che avrete davanti appena completata la prima installazione:
Attorno a questo meraviglioso progetto ruota una fervidissima community di sviluppatori, sistemisti, amatori ecc che mettono a disposizione e a confronto le proprie esperienze. Forse avrei dovuto iniziare a parlare di questo progetto documentandone la mia installazione preferita su mainboard Alix 2D13 di cui vi lascio una piccola anteprima.
Come potete vedere potete installare il sistema operativo su una compact flash e come vedremo tra poco salvare le vostre configurazioni su una chiavetta usb. Inutile che io stia a dirvi che lo stesso tipo di installazione la potete fare con un vecchio PC, con il giusto numero di schede di rete (2 sono sufficienti per iniziare, 3 sono ancora meglio per testare cose meravigliose come il Net balacing o Failover di 2 connessioni ADSL.) Spero di aver stimolato abbastanza la vostra fantasia e voglia di contribuire ad un progetto così interessante. Per ora immaginiamo di aver già fatto tutto e configurato la nostra prima rete e pensiamo solo a salvare la configurazione appena fatta che potremo per esempio importare su un nuovo dispositivo in caso di guasti. Come sempre non ho inventato nulla, e vi segnalo anticipatamente la pagina del forum da cui ho raccolto e messo insieme questa mini guida:
http://www.zeroshell.net/eng/forum/viewtopic.php?t=2931&highlight=profile+error
Ringraziamo immediatamente Ihyae (aka Dennis), che ci suggerisce dove guardare. Guardando gli script presenti nel path: /root/kerbynet.cgi/scripts/ invocando il backup dalla WebGUI, viene lanciato il seguente comando:
/bin/sh /root/kerbynet.cgi/scripts/backupdb /udev/hda3 _DB.001 Yes
Dennis ci ha lasciato bello pronto un script per ottenere una copia “compressa” del profilo che potremo posizionare comodamente su una chiavetta usb “montata” da qualche parte (tipo /mnt/backup).
Lo script leggermente modificato lo trovate qui sotto:
###---INIZIO DELLO SCRIPT----###
#!/bin/sh
mount /udev/sda1 /mnt/backup ###---nome della periferica usb e mount point---###
BN= cufrezero-`date +%e-%m-%y`.bak ###---BACKUP NAME---#####
source /etc/kerbynet.conf
function UMOUNT () {
cd /
umount $MP/$DB.AUX 2> /dev/null
if [ "$ALREADYMOUNTED" == No ] ; then
umount "$MP" && rmdir "$MP"
fi
}
function ERROR () {
cd /
echo ERROR > "$MP/$DB/.settings/LastBackup"
UMOUNT
exit 1
}
DEV="$1"
DB="$2"
COMPRESSED="$3"
WOLOGS="$4"
[ -z "$DEV" -o -z "$DB" ] && exit 1
$SCRIPTS/umountstorage >/dev/null
NODEV=${DEV:2}
LINE=`df -T -P | grep "$NODEV "`
if [ -z "$LINE" ] ; then
MP=/storage/`echo $DEV | sed -e "s/\//_/g"`;
mkdir -p "$MP"
mount -o rw "$DEV" "$MP" || exit 1
if [ -r /$MP/$DB.AUX ] ; then
if ! mount -oloop $MP/$DB.AUX /$MP/$DB ; then
UMOUNT
exit 2
fi
fi
ALREADYMOUNTED=No
else
MP=`echo $LINE | cut -f7 -d' '`
mount -oremount,rw "$MP" || exit 1
ALREADYMOUNTED=Yes
if [ -r /$MP/$DB.AUX ] ; then
if ! mount -oloop $MP/$DB.AUX /$MP/$DB ; then
UMOUNT
exit 2
fi
fi
fi
cd "$MP/$DB"
if ! [ -d .settings ]; then
UMOUNT
exit 3
fi
if [ "$WOLOGS" = Yes ] ; then
EXCLUDE='--exclude LOG'
else
EXCLUDE=''
fi
if [ "$COMPRESSED" == Yes ] ; then
rm -rf /mnt/backup/$BN
for N in `seq 1 100` ; do
echo "$N BACKUP $DEV $DB `date` ================================================================================================" >> /mnt/backup/$BN
done
tar cfzv - --exclude var/register/system/havp/tmp/\* $EXCLUDE . | uuencode /dev/stdout >> /mnt/backup/$BN || ERROR
cd /mnt/backup
md5sum $BN > $BN.md5
else
tar cf - --exclude var/register/system/havp/tmp/\* $EXCLUDE . || ERROR
fi
date +"%d %b %Y %H:%M" > "$MP/$DB/.settings/LastBackup"
UMOUNT
umount /mnt/backup/ ####---ho aggiunto anche un unmount per sicurezza----####
###---fine dello script----###
Quello che dobbiamo fare è inserire lo script in una directory di quelle che non si “resettano” ad ogni riavvio (tipo (Database/script/) e avviarlo da shell così: /bin/bash /Database/backup_profile hda3 _DB.002 Yes dove hda3 è la partizione che il nostro zero usa correntemente per salvare i profili e _DB.002 è il profilo che stiamo usando (quello “attivo”).
Bene, facciamo ancora un paio di considerazioni:
se collegate una chiavetta usb al vostro zero, potrete salvarci sopra il profilo, comodamente dalla webgui di zeroshell….
Bene, da li possiamo “annotarci” il nome della periferica usb da passare allo script…
E dopo qualche backup, possiamo cliccare sul tasto “View FS” ed ecco che ci troveremo davanti una bella finestrella con i nomi dei nostri backup….
Resta ancora un’ultima cosetta da fare… SCHEDULARE:
possiamo farlo dalla GUI
Abbiamo finito anche questa sera con un altro piccolo anticipo di quello che è e sarà un progetto interessantissimo, e concludiamo ancora con un bel Grazie Fulvio.
Lascia un commento