Skip to content

Instantly share code, notes, and snippets.

@agarzon
Last active April 21, 2021 12:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save agarzon/8ce5b2a0e97dce03c04b to your computer and use it in GitHub Desktop.
Save agarzon/8ce5b2a0e97dce03c04b to your computer and use it in GitHub Desktop.
Mysql Backup ALL databases
#!/bin/bash
TIMESTAMP=$(date +'%Y-%m-%d_%Hh%Mm')
BACKUP_FOLDER=/mnt/backup/mysql
MYSQL_USER=admin
MYSQL_PASS=`cat /etc/psa/.psa.shadow`
MAX_DAYS=15
DATABASES=`mysql --user=$MYSQL_USER -p$MYSQL_PASS -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema)"`
mkdir -p "$BACKUP_FOLDER"
for db in $DATABASES;do
echo "Creating backup folder $db"
mkdir -p "$BACKUP_FOLDER/${db}"
mysqldump --single-transaction --force --events -u$MYSQL_USER -p$MYSQL_PASS $db | gzip > "$BACKUP_FOLDER/${db}/$TIMESTAMP.sql.gz";
echo "Backup $db"
done
echo "Cleaning old backups"
find $BACKUP_FOLDER -mtime +$MAX_DAYS | xargs rm -rf
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment