#!/bin/bash
-### Halt on errors
-#set -e
-### Halt on unset variables
-set -u
-
### Do not inherit the following variables
# Safety net just in case some calls this
# script in a bogus way.
FTP_HOST=uxxx.your-backup.de
PROTO=ssh
ROOTMAIL="root@localhost"
-LOCKFILE="/var/lock/backup/hetznerbackup"
+LOCKDIR="/var/lock/backup"
+LOCKFILE="$LOCKDIR/hetznerbackup"
LOGFILE="/var/log/hetznerbackup"
SESSIONLOG=$(mktemp /var/tmp/hetznerbackup.XXXXXXXXX)
ERRSTAT=0
## Backup job for main
job_main() {
- echo "" >> $SESSIONLOG
- echo "Backing up main `date`" >>
- echo "" >> $SESSIONLOG
-
echo "Going for /etc" >> $SESSIONLOG
duplicity $BMODE $dry /etc $PROTO://$FTP_USER@$FTP_HOST/main/etc >> $SESSIONLOG 2>&1 || ERRSTAT=1
duplicity remove-all-but-n-full 5 --force $dry $PROTO://$FTP_USER@$FTP_HOST/main/etc >> $SESSIONLOG 2>&1 || ERRSTAT=1
echo "" >> $SESSIONLOG
}
-# Append the session log to the main logfile and remove it
+## Append the session log to the main logfile and remove it
clean_log() {
cat $SESSIONLOG >> $LOGFILE
rm $SESSIONLOG
echo "This is a typical result of a failed backup run, please contact your admin"
exit 5
else
+ if [ ! -d $LOCKDIR ]; then
+ mkdir -m 700 $LOCKDIR
+ fi
touch $LOCKFILE
fi
+### Starting
+ echo "" >> $SESSIONLOG
+ echo "Starting Backup `date`" >> $SESSIONLOG
+ echo "" >> $SESSIONLOG
+
### Set the duplicity backup mode we would like to use
if [[ $(LANG=C; date +%A) =~ Sunday ]]; then
- echo "Runing in full mode"
+ echo "Runing in full mode" >> $SESSIONLOG
BMODE="full"
else
- echo "Runing in incr mode"
+ echo "Runing in incr mode" >> $SESSIONLOG
BMODE="incr"
fi