X-Git-Url: http://git.sven.stormbind.net/?p=sven%2Fscripts.git;a=blobdiff_plain;f=hetzner%2Fhetznerbackupv2.sh;h=8361077902433ae91afcddf18bbb2de7a1bfd706;hp=e6afd73411f84709b8ca538e649406517a3287c6;hb=HEAD;hpb=b2be12c04a5e851ad8dbfc360e03908eabac3dd4 diff --git a/hetzner/hetznerbackupv2.sh b/hetzner/hetznerbackupv2.sh deleted file mode 100755 index e6afd73..0000000 --- a/hetzner/hetznerbackupv2.sh +++ /dev/null @@ -1,93 +0,0 @@ -#!/bin/bash - -### Do not inherit the following variables -# Safety net just in case some calls this -# script in a bogus way. -unset $dry - -### Debug -#set -x -#set dry="--dry-run" - -### General settings -export PASSPHRASE=s -export FTP_PASSWORD=s -FTP_USER=uxxx -FTP_HOST=uxxx.your-backup.de -PROTO=ssh -ROOTMAIL="root@localhost" -LOCKFILE="/var/lock/backup/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 "Going for /home" >> $SESSIONLOG - duplicity $BMODE $dry /home $PROTO://$FTP_USER@$FTP_HOST/main/home >> $SESSIONLOG 2>&1 || ERRSTAT=1 - duplicity remove-all-but-n-full 5 --force $dry $PROTO://$FTP_USER@$FTP_HOST/main/home >> $SESSIONLOG 2>&1 || ERRSTAT=1 - - echo "Going for /var/www" >> $SESSIONLOG - duplicity $BMODE $dry /var/www $PROTO://$FTP_USER@$FTP_HOST/main/var/www >> $SESSIONLOG 2>&1 || ERRSTAT=1 - duplicity remove-all-but-n-full 5 --force $dry $PROTO://$FTP_USER@$FTP_HOST/main/var/www >> $SESSIONLOG 2>&1 || ERRSTAT=1 - - echo "Going for /var/lib/automysqlbackup" >> $SESSIONLOG - if [ -e /var/lib/automysqlbackup/backupdone ]; then - duplicity $BMODE $dry /var/lib/automysqlbackup $PROTO://$FTP_USER@$FTP_HOST/main/automysqlbackup >> $SESSIONLOG 2>&1 || ERRSTAT=1 - duplicity remove-all-but-n-full 5 --force $dry $PROTO://$FTP_USER@$FTP_HOST/main/automysqlbackup >> $SESSIONLOG 2>&1 || ERRSTAT=1 - else - echo "WARNING: It seems that the last mysql backup is still runing" >> $SESSIONLOG - echo "Skipping mysql backup - please re-schedule" >> $SESSIONLOG - fi - - echo "" >> $SESSIONLOG -} - -# Append the session log to the main logfile and remove it -clean_log() { - cat $SESSIONLOG >> $LOGFILE - rm $SESSIONLOG -} - -### check for other runing instances of this script -if [ -e $LOCKFILE ]; then - echo "Lockfile $LOCKFILE found - aborting" - echo "This is a typical result of a failed backup run, please contact your admin" - exit 5 -else - touch $LOCKFILE -fi - -### Set the duplicity backup mode we would like to use -if [[ $(LANG=C; date +%A) =~ Sunday ]]; then - echo "Runing in full mode" - BMODE="full" -else - echo "Runing in incr mode" - BMODE="incr" -fi - -### Start the backup jobs -job_main - -### Cleanup and reporting -ENDDATE=$(date) -if [ $ERRSTAT -eq 0 ]; then - echo "Backup finished successfully $ENDDATE" >> $SESSIONLOG - clean_log - rm $LOCKFILE - exit 0 -else - echo "ERROR Backup FAILED $ENDDATE" >> $SESSIONLOG - cat $SESSIONLOG|mail -s "ERROR Backup FAILED $ENDDATE" $ROOTMAIL - clean_log - exit 1 -fi