Backup unter Ubuntu

Hallo,

Ich habe eine Frage zum Backup unter Linux.

Ich sichere mein Symcon Verzeichnis auf 2 Arten. Zum einen habe ich ein Shell-Skript, welches 1x am Tag läuft und auch die Backups automatisch rolliert (habe ich bei der Gelegenheit unten nochmal geteilt). Das Skript habe ich im WWW gefunden und etwas modifiziert,

Die zweite Art ist über mein Synology NAS mit der neuen clientlosen Backupfunktion (Active Backup). Diese greift im wesentlichen einfach auf eine Freigabe (bzw rsync server) zu und sichert die Dateien.

Bisher habe ich den Symcon Dienst dazu nicht gestoppt und möchte das auch vermeiden.
Mir ist aber gerade aufgefallen, dass das durch die Anleitung eigentlich so vorgeben ist.

Meine Fragen dazu:
Wie wichtig ist das? Was passiert schlimmstenfalls, wenn ich den Dienst vor dem Backup nicht stoppe?
Wird eine Wiederherstellung dann scheitern?

Backup-Skript mit rotation:

#!/bin/bash
#########################
# Backups to DESTINATION_FOLDER / Zips and performs basic rotation
##########################

SOURCE_FOLDER="/source/" # source folder
DESTINATION_FOLDER="/backup/" # mounted folder
BASENAME="basename $SOURCE_FOLDER"
ROTATE_PERIOD=10

# datestamp has a formatted date
datestamp=`date +"%d-%m-%Y"`

#### Display command usage ########
usage()
{
cat << EOF
USAGE:
backuprot [OPTIONS] /source_folder/ /destination_folder/

Back up and entire folder, creates tgz and ,
performs x day rotation of backups Must provide source and destination folders

OPTIONS:
-p Specify Rotation period in days - default is $ROTATE_PERIOD

EXAMPLES:
backuprot -p 5 [/source_folder/] [/destination_folder/]

EOF
}

#### Getopts #####
while getopts ":p:" opt; do
  case $opt in
    p) ROTATE_PERIOD=${OPTARG}
    ;;
    \?) echo "$OPTARG is an unknown option"
     usage
     exit 1
    ;;
    :) echo "Option -$OPTARG requeres an argument."
     usage
     exit 1
    ;;
  esac
done


shift $((OPTIND-1))

if [ -z "$1" ] || [ -z "$2" ]; then
  usage
  exit 1
else

  # Backup and gzip the directory
  SOURCE_FOLDER=$1
  BASENAME=`basename "$SOURCE_FOLDER"`
  TGZFILE="$BASENAME-$datestamp.tgz"
  LATEST_FILE="$BASENAME-Latest.tgz"
  DESTINATION_FOLDER=$2

  echo "Starting Backup and Rotate "
  echo "---------------------------------------"
  echo "Rotate Period : $ROTATE_PERIOD"
  echo "Source Folder : $SOURCE_FOLDER"
  echo "Target Folder : $DESTINATION_FOLDER"
  echo "Backup file : $TGZFILE "
  echo "---------------------------------------"

  if [ ! -d "$SOURCE_FOLDER" ] || [ ! -d "$DESTINATION_FOLDER" ] ; then
    echo "SOURCE ($SOURCE_FOLDER) or DESTINATION ($DESTINATION_FOLDER) folder doesn't exist/ or is misspelled, check & re-try."
    exit 1;
  fi

  echo "Creating $DESTINATION_FOLDER/$TGZFILE ... "
  tar -zcvf $DESTINATION_FOLDER/$TGZFILE $SOURCE_FOLDER
  echo "Copying $DESTINATION_FOLDER/$TGZFILE --to--> $LATEST_FILE ... "
  cp $DESTINATION_FOLDER/$TGZFILE $DESTINATION_FOLDER/$LATEST_FILE
  # count the number of files in the appropriate folder Rotate the logs, delete older than
  # ROTATE_PERIOD days, if their are at_least 7 backups
  FILE_COUNT=`find $DESTINATION_FOLDER -maxdepth 1 -type f | wc -l`
  echo "Rotation period $ROTATE_PERIOD for $DESTINATION_FOLDER "
  echo "$FILE_COUNT files found in $DESTINATION_FOLDER folder"
  echo "find $DESTINATION_FOLDER -mtime +$ROTATE_PERIOD"
  echo "-----------------------------------"
  if [ $FILE_COUNT -gt $ROTATE_PERIOD ]; then
    echo "Removing backups older than $ROTATE_PERIOD in $DESTINATION_FOLDER"
    echo "Removing these old backup files..."
    find $DESTINATION_FOLDER -mtime +$ROTATE_PERIOD -exec rm {} \;
  else
    echo "Only $FILE_COUNT file, NOT removing older backups in $DESTINATION_FOLDER "
  fi
fi

echo "-----------------------------------"
echo "Backup_rot Complete."
echo "to extract file: tar -xzvf $TGZFILE "
exit 0
root@mini:/sbin# 

Im schlimmsten Fall ist die settings.json (oder irgendeine andere Datei) inkonsistent und nach der Wiederherstellung startet IP-Symcon nicht.

paresy

Gut. Also am besten stoppen.
Ist natürlich doof die Automation 1x am Tag anzuhalten…

Welches wäre die beste Uhrzeit für ein Backup mit stopp?
Oder anders gefragt, hast Du Housekeepingdienste die regelmäßig laufen und besser nicht unterbrochen werden sollten?

Wenn du gewillst bist manuell ein Backup zu „fixen“ kannst du es weiterhin so machen wie du es machst. Denn: Du hast nach Mitternacht im Backup Ordner immer eine konsistente und korrekte settings.json, die du wiederherstellen kannst.

paresy

OK, es geht also im schlimmsten Fall „nur“ um die settings.json, welche Du aber um Mitternacht sowieso automatisch innerhalb des Symcon-Ordners wegsicherst?

Dann werde ich wohl…
1.) meine Sicherung erst nach Mitternacht starten
2.) und sonst erstmal so weitermachen

Danke für den Tip mit Active Backup !!! Bin auch total Synology geschädigt und habe grad mal eingerichtet. Geht perfekt. Einfacher gehts kaum. Selbst ohne Script. Einfach per rsync die Ordner auswählen und Feuer frei. DANKE !:smiley:

Nur mit dem Stoppen des Symcon Diensts klappts so halt nicht.
Habe zur Zeit beides: Active Backup und mein Shell-Script für das Lokale backup

Und dann sichert Symcon ja auch noch die Konfig…
Ist also hoffentlich hinreichend sicher. Er Verlust wäre mittlerweile katastrophal.