#!/bin/bash

purge_backup()
{
  STARTDIR=$1
  MINTIME=$2
  MAXTIME=$3
  DELCNT=0

  for file in `find $STARTDIR -type f -ctime -$MAXTIME -ctime +$MINTIME -iregex '[0-9./_]+.sql.gz'`
  do
    if [ $DELCNT != 0 ] 
    then
      /bin/rm -f $file
    fi
    DELCNT=$(( DELCNT+1 ))
  done
}

remove_backup()
{
  STARTDIR=$1
  MINTIME=$2

  find $STARTDIR -type f -ctime +$MINTIME -iregex '[0-9./_]+.sql.gz' -exec rm -f {} \;
}

OLD_PWD=`pwd`

cd /opt/euro-beta

USE_GPG=`./systools/get_eurodb_config_val AutoSaveGPGEncrypt`


cd /opt/euro-beta/db_backup

BACKUPNAME=`date +%Y_%m_%d__%H_%M`

# delete incomplete previous backups
/bin/rm -f *.sql 
/bin/rm -f $BACKUPNAME.sql.gz
#mysqldump -c --add-drop-table --add-locks -u euro3g -peuro3g eurotest > $BACKUPNAME.sql
#gzip $BACKUPNAME.sql
/opt/euro-beta/systools/backup_db --no-progress --message autobackup eurotest  --outfile $BACKUPNAME  || exit 1

cp --reflink=auto  $BACKUPNAME.sql.gz ../autobackup.sql.gz

if [ "$USE_GPG" == 1 ] ; then
  OLDHOME=$HOME
  HOME=/opt/euro-beta
  export HOME
  gpg -r euro3g -o $BACKUPNAME.sql.gpg --secret-keyring euro3g_secring.gpg -e $BACKUPNAME.sql.gz
  /bin/rm -f $BACKUPNAME.sql.gz
  HOME=$OLDHOME
  export HOME
fi


# we should delete all backups older then 120 days ( approx 4 months )
remove_backup   . 120
# for backups older than 1 month but younger than 4 months we want to keep only one per month
purge_backup    . 90 120
purge_backup    . 60 90
purge_backup    . 30 60
#for backups older then 10 days but younger than 30 days we keep one backup every 5 days
purge_backup    . 25 30
purge_backup    . 20 25
purge_backup    . 15 20
purge_backup    . 10 15

cd $OLD_PWD

