#!/bin/bash # mysql database backup. # executed by duplicati run-script-before-required # required environment variables: # DESTINATION # MYSQL_HOST # MYSQL_USER # MYSQL_PASSWORD # MYSQL_DATABASE #any error must stop execution set -e if [ $DUPLICATI__OPERATIONNAME == "Backup" ] echo "Backup Job!!" else echo "Not a backup operation. exiting!" #OK, run operation exit 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}