#!/bin/bash # mysql database backup. # executed by duplicati run-script-before-required # required environment variables: # DESTINATION # MYSQL_HOST # MYSQL_USER # MYSQL_PASSWORD # MYSQL_DATABASE # download directly from git # curl https://git.limbosolutions.com/kb/duplicati/raw/branch/main/docker/scripts/backupdb.sh > backupdb.sh | chmod +x backupdb.sh #any error must stop execution set -e if [ $DUPLICATI__OPERATIONNAME != "Backup" ] then echo "Not a backup operation. exiting!" #OK, run operation return 0 fi if [ -z ${DESTINATION} ] then echo "\$DESTINATION environment variable cannot be empty empty" #5: Error don't run operation exit 5 fi TARGETFILENAME=${MYSQL_NAME}_dump_$(date -d "today" +"%Y%m%d%H%M%S").sql echo "dump file name:$TARGETFILENAME" if [ -f /tmp/${TARGETFILENAME} ] then rm /tmp/${TARGETFILENAME} fi mysqldump -h ${MYSQL_HOST} --user=${MYSQL_USER} -p"${MYSQL_PASSWORD}" ${MYSQL_DATABASE} > /tmp/${TARGETFILENAME} if [ x$(find "$DESTINATION" -prune -empty) = x"$DESTINATION" ]; then echo "folder is empty... ignoring clean db dump folder" else rm -r ${DESTINATION} /* fi mv /tmp/${TARGETFILENAME} ${DESTINATION}/${TARGETFILENAME} return 0