Backup auf DVD-RAM

Ich hatte am Sonnabend an den Build-Skripten für meine Eisfair-Pakete geschraubt. Sonnabend ist auch einer von zwei Tagen in der Woche, wo mein Heimserver Backups macht, die ich für gewöhnlich auf DVD-RAM kopiere. Da das immer die gleichen Arbeitsabläufe sind und ich gerade drin steckte im Programmieren, hab ich mir für das Backup ein kleines Skript geschrieben, das diese Arbeitsabläufe auf den Aufruf des Skriptes zusammenfasst. Das Skript mal gekürzt:

#!/bin/sh
. /var/install/include/eislib
mecho -info "Mounting DVD..."
mount -t udf /dev/cdrom /cdrom
mecho -info "Removing old backup..."
rm -f /cdrom/backup-zip/*
rm -f /cdrom/svn/*
mecho -info "Getting free space from DVD... "
DVDFREEMB=`df --block-size=M | awk '//dev/cdrom/ {print $4}'
    | sed -e 's/(^[0-9]*).*/1/'`
mecho -info "Getting size of home dir backup..."
cd /mnt/data/backup/backup-zip/cron
CUMBUSIZE=0
for i in `ls -l --block-size=M | awk '/home_1/ {print $5}'
    | sed -e 's/(^[0-9]*).*/1/'`
do
	CUMBUSIZE=`expr $CUMBUSIZE + $i`
done
cd /mnt/data/backup
SVNSIZE=`du --block-size=M -s svn/ | cut -f1
    | sed -e 's/(^[0-9]*).*/1/'`
CUMBUSIZE=`expr $CUMBUSIZE + $SVNSIZE + 25`	# sicherheitsfaktor
if [ $CUMBUSIZE -gt $DVDFREEMB ]
then
	mecho -error "Backup is $CUMBUSIZE MB but only $DVDFREEMB MB are free on DVD. Aborting..."
	exit 1
else
	mecho -info "Backup is $CUMBUSIZE MB and $DVDFREEMB MB are free on DVD. Continuing..."
fi
# script continues with copying, cutting off here...

Das Debuggen wurde mir in diesem Fall künstlich erschwert, weil meine eine DVD-RAM allem Anschein nach jetzt kaputt ist. Das Backup selbst dauerte doppelt so lang wie normal mit diversen Fehlermeldungen vom UDF-Dateisystem im Syslog und bei der letzten Datei wurde wider Erwarten abgebrochen mit der Meldung es sei nicht genug Platz auf dem Datenträger. Mehrfaches Neuformatieren hat nichts gebracht. Das ist eine beinahe schockierende Erkenntnis, gelten DVD-RAM-Medien doch als wesentlich sicherer für Backups als herkömmliche DVD±RW. Das Backup lief mit einem frischen Medium dann in einer guten Stunde durch.

Eine andere Sache ist das Skript selbst nochmal. Ich lasse mir von den unterschiedlichen Tools Speicherplatz in Megabyte ausgeben, d.h. die Angaben sind beispielsweise “512M”, also immer eine Zahl mit dem “M” dahinter. Mangels tiefergehender Kenntnisse in awk jage ich das weiter an sed wo ich dann mit einem regulären Ausdruck alles hinter den Ziffern entferne. Das ist ja nun schlechter Stil, normalerweise sollte awk das direkt selbst machen können, d.h. in die geschweiften Klammern muss nicht nur “print” rein…
Wenn jemand eine Idee hat, wie das zu bewerkstelligen ist, bitte ich Euch es mich wissen zu lassen!

Leave a Reply

Your email address will not be published. Required fields are marked *