Hilfe beim Debuggen des Backup-Skripts

Hilfe beim Debuggen des Backup-Skripts

Alle 3 Stunden wird das Skript ausgeführt und sichert einen Ordner „SOURCE“ und speichert ihn zusammen mit den anderen Sicherungen des aktuellen Tages im Ordner „Monat-Tag-Jahr“, z. B. „24.03.13“. Wenn ein neuer Tag beginnt, erstellt es einen neuen Ordner mit dem neuen Datum und löscht alle Sicherungen außer der letzten im Ordner des Vortages. Hier liegt das Problem, die alten Ordner vom Vortag werden nicht gelöscht. Irgendwelche Ideen, warum?

#!/bin/sh

DIR=/media/HDD
SOURCE=/home/eric/Creative/
DATE=$(date +"%m-%d-%Y")
YESTERDAY=$(date -d '1 day ago' +"%m-%d-%Y")
TIME=$(date +"%T")
DESTINATION=$DIR/$DATE/$TIME
SPACE=$(df -P $DIR | tail -1 | awk '{print $4}')
NEEDED=$(du -s $SOURCE | awk '{print $1}')
FOLDERS=$(find $DIR/* -maxdepth 0 -type d | wc -l)

# If there is not enough space, delete the oldest folder
if [ $NEEDED -ge $SPACE ]; then
  ls -dt $DIR/* | tail -n +$FOLDERS | xargs rm -rf
fi

# If there is not a folder for today, create one
if [ ! -d "$DIR/$DATE" ]; then
  mkdir $DIR/$DATE

  # If there is a folder from yesterday, keep only one of its backups
  if [ ! -d "$DIR/$YESTERDAY" ]; then
    ls -dt $DIR/$YESTERDAY/* | tail -n +2 | xargs rm -rf
  fi

fi

# Create the new backup directory
if [ ! -d "$DESTINATION" ]; then
  mkdir $DESTINATION
fi

# Backup source to destination
rsync -a $SOURCE $DESTINATION

Antwort1

if [ ! -d "$DIR/$YESTERDAY" ]; then

Die Ausführung schlägt fehl. Sie testen, ob KEIN Verzeichnis vorhanden ist.

Es sollte sein

if [ -d "$DIR/$YESTERDAY" ]; then

verwandte Informationen