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#