#!/usr/bin/env bash # Set required settings timestamp="$(date +"%Y%m%d-%H%M%S")-" # If the backup location doesn't exist yet, create it if [ ! -d $mariadb_folder_destination ]; then mkdir -p $mariadb_folder_destination fi # Get the names of all databases databases=`mysql --user=$mariadb_user -p$mariadb_password -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema|tmp)"` cd $tmp # Iterate over all database names and create a backup for each, encrypting them afterwards for db in $databases; do echo "$db -> $mariadb_folder_destination$timestamp$db$sql_suffix$tar_suffix$gpg_suffix" # dump .sql to /tmp mysqldump --force --opt --user=$mariadb_user -p$mariadb_password --databases $db > $tmp$timestamp$db$sql_suffix # tar in /tmp tar cfJ $timestamp$db$sql_suffix$tar_suffix $timestamp$db$sql_suffix # gpg to mariadb_folder_destination gpg -e \ -r "$gpg_public_key" \ -o $mariadb_folder_destination$timestamp$db$sql_suffix$tar_suffix$gpg_suffix \ $timestamp$db$sql_suffix$tar_suffix # delete tar and sql in /tmp rm -f $timestamp$db$sql_suffix* done