X-Git-Url: https://git.sven.stormbind.net/?a=blobdiff_plain;f=hetzner%2Fhetznerbackupv2.sh;h=2ceb473d2e88c89cf28d57691db6030a5a63db58;hb=488bf506a4decb4e313c9d027cfcab23049474e7;hp=7f07a0461eb17f6cc51bfecbd5979eae80b6d05d;hpb=7a83756f96e13315f318ff43f6b467ff6c55e814;p=sven%2Fscripts.git diff --git a/hetzner/hetznerbackupv2.sh b/hetzner/hetznerbackupv2.sh index 7f07a04..2ceb473 100755 --- a/hetzner/hetznerbackupv2.sh +++ b/hetzner/hetznerbackupv2.sh @@ -16,7 +16,8 @@ FTP_USER=uxxx 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 @@ -26,19 +27,23 @@ job_main() { 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 + duplicity cleanup --extra-clean --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 + duplicity cleanup --extra-clean --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 + duplicity cleanup --extra-clean --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 + duplicity cleanup --extra-clean --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 @@ -59,6 +64,9 @@ if [ -e $LOCKFILE ]; then 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