#!/bin/bash
# EasyLinux-Backup-Skript

# Einstellungen
BACKUPDIR=/home/hesser/easy/2007/04/guru-backup/sicherungen
TIMESTAMP=backup-timestamp.dat
DATA=/home/hesser/Dokumente

if [ ! -d "${BACKUPDIR}" ]; then
  echo "Das Backup-Verzeichnis ${BACKUPDIR} existiert nicht."
  exit 1
fi

set -- ${BACKUPDIR}/backup-???.tgz        # Letzter Backup-Dateiname steht in ${!#}
lastname=${!#}
backupnr=${lastname##*backup-}            # Dateipfad bis einschließlich "backup-" entfernen
backupnr=${backupnr%%.*}                  # Alles hinter dem ersten Punkt entfernen -- funktioniert auch mit .tar.gz
backupnr=${backupnr//\?/0}                # Falls es noch keine Backups gab, ist backupnr=???, also ? durch 0 ersetzen.
backupnr=$[10#${backupnr}]                # Führende Nullen entfernen (siehe base# in der Bash-Manpage)

if [ "$[backupnr++]" -ge 999 ]; then      # Erhöhen von $backupnr um 1 ist implizit in der Abfrage eingebaut
  echo "Fehler: Schon 999 Backups da!"
  exit 1
fi

backupnr=000${backupnr}                   # Nullen voranstellen
backupnr=${backupnr: -3}                  # Und die letzten 3 Ziffern herausschneiden. Leerzeichen *unbedingt* 
                                          # nötig wegen dem Minus, da :- eine andere Shell-String-Operation ist.
filename=backup-${backupnr}.tgz
echo "Sichere veränderte Daten in ${filename}"
tar -czf ${BACKUPDIR}/${filename} -g ${BACKUPDIR}/${TIMESTAMP} ${DATA}

