Skip to content

Instantly share code, notes, and snippets.

@turric4n
Created March 6, 2023 09:40
Show Gist options
  • Save turric4n/0a41cf291671c33c1c459ea906e98370 to your computer and use it in GitHub Desktop.
Save turric4n/0a41cf291671c33c1c459ea906e98370 to your computer and use it in GitHub Desktop.
MySQL customizable backups with environment variables
#!/bin/bash
logger "Starting Mariadb backup job - "$(date)
export | logger
DB_NAMES="${BACKUP_DB_NAMES}"
IFS=', ' read -r -a array <<< "$DB_NAMES"
DB_NAME_LIST=($DB_NAMES)
DB_USER="root"
DB_PASSWORD="$MARIADB_ROOT_PASSWORD"
logger "Target database names : " $DB_NAMES
BACKUP_DIR="/mnt/mariadb/backup"
DATE=$(date +"%Y-%m-%d")
BACKUP_STATUS=0
if [ ! -d $BACKUP_DIR ]; then
logger $BACKUP_DIR "doesn't exist, creating"
mkdir $BACKUP_DIR
fi
for item in "${array[@]}"
do
echo $item
BACKUP_FILE="$item-$DATE.sql"
BACKUP_PATH="$BACKUP_DIR/$BACKUP_FILE"
if [ -f $BACKUP_PATH ]; then
rm $BACKUP_PATH
fi
logger "Doing backup ${BACKUP_PATH}"
echo "Doing backup ${BACKUP_PATH}"
mysqldump --user $DB_USER --password=$DB_PASSWORD $item > $BACKUP_PATH
if [ ! $BACKUP_STATUS -eq 1 ]; then
BACKUP_STATUS=$?
fi
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment