Bei dem schönen Wetter und weil gestern meine Etrex Fahrrad-Halterung eingetroffen ist, habe ich heute eine kleine Tour mit dem Rad gemacht. Einmal Witten und Dortmund gestreift und wieder zurück. Außerdem teste ich hiermit mal mein neues WordPress Plugin 😉 Demnächst kommt vielleicht mal die ein oder andere Motorradtour in mein Blog.
track
Archiv für den Monat: Juni 2009
Backup Script mit DAR
Vor einiger Zeit habe ich ein kleines Backup Script geschrieben, welches sich des schönen Programmes DAR bedient.
Das Script ist so gedacht, dass ganze Verzeichnisse in .dar Dateien zusammengefasst und verschlüsselt werden. Diese werden zuerst in einem lokalen Verzeichnis zwischengespeichert und nach der Fertigstellung auf einen FTP-Server hochgeladen. Nach erfolgreichem Transfer wird die lokale Datei gelöscht.
Ab dem zweiten Durchlauf, also Start des Scripts, werden „differentielle“ Backups erstellt. Anhand des vorher angelegten „Catalogues“, welcher, im Gegensatz zur eigentlichen Backup Datei, noch lokal im Dateisystem belassen wird, ensteht eine neue Backup Datei die nur noch die Unterschiede zur Vorherigen enthält.
#!/bin/bash KEY="foobar" DIRS="/etc /home/bjoern" BACKUP_DIR="/backup/ftp-raw" BACKUP_TEMP="/backup/temp" BACKUP_CATALOGUES="/backup/catalogues" DATE_STRING=`date +"%Y-%m-%d-%H-%M"` FTP_USER="foo" FTP_PASS="bar" FTP_IP="123.123.123.123" date if ! test -e $BACKUP_DIR;then     mkdir -p $BACKUP_DIR fi if ! test -e $BACKUP_TEMP;then     mkdir -p $BACKUP_TEMP fi if ! test -e $BACKUP_CATALOGUES;then     mkdir -p $BACKUP_CATALOGUES fi for i in $DIRS do     echo "Backing up $i"     NAME=`echo $i | sed -s "s/\//_/g"`     LATEST=`ls $BACKUP_CATALOGUES/*.1.dar 2>/dev/null | grep $NAME | tail -n1| sed -s "s/\.1\.dar//"`     if [[ $LATEST ]];then         NAME_NEW="$NAME-$DATE_STRING-diff"         echo "Latest was $LATEST"         dar -K bf:$KEY -R $i -c $BACKUP_TEMP/$NAME_NEW -A $LATEST -X *.log         if [[ $? -eq 0 || $? -eq 11 ]];then             echo "Backup of $i done."         else             echo "Backup failed."             continue         fi         dar -J bf:$KEY -C $BACKUP_CATALOGUES/$NAME_NEW-catalogue -A $BACKUP_TEMP/$NAME_NEW         if [[ $? -eq 0 || $? -eq 11 ]];then             echo "Catalogue created."         else             continue             echo "Catalogue failed."         fi         lftp ftp://$FTP_USER:$FTP_PASS@$FTP_IP/ -e "put $BACKUP_TEMP/$NAME_NEW.1.dar;exit"         if [[ $? -eq 0 ]];then             rm -f $BACKUP_TEMP/$NAME_NEW.1.dar         fi     else         NAME_NEW="$NAME-$DATE_STRING"         echo "No previous backup found"         dar -K bf:$KEY -R $i -c $BACKUP_TEMP/$NAME_NEW -X *.log         if [[ $? -eq 0 || $? -eq 11 ]];then             echo "Backup of $i done."         else             echo "Backup failed."             continue         fi         dar -J bf:$KEY -C $BACKUP_CATALOGUES/$NAME_NEW-catalogue -A $BACKUP_TEMP/$NAME_NEW         if [[ $? -eq 0 || $? -eq 11 ]];then             echo "Catalogue created."         else             continue             echo "Catalogue failed."         fi         lftp ftp://$FTP_USER:$FTP_PASS@$FTP_IP/ -e "put $BACKUP_TEMP/$NAME_NEW.1.dar;exit"         if [[ $? -eq 0 ]];then             rm -f $BACKUP_TEMP/$NAME_NEW.1.dar         fi     fi done |
Wieder daheim
Das war leider eine kurze Tour. Abgesehen von den Sachen, welche die Tour nicht überlebt haben, hat es aber trotzdem Spass gemacht. Vor allem weil das Wetter mitgespielt hat.
Da ich jetzt so früh schon wieder zurück bin, bleibt auch genug freie Zeit, um die Maschine wieder fit zu machen. Über’n TÜV muss sie diesen Monat eh noch …