Skip to content

Instantly share code, notes, and snippets.

@jpbarbosa
Created June 25, 2016 23:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jpbarbosa/044d132c1dd4488ffc00b73e046bf8a7 to your computer and use it in GitHub Desktop.
Save jpbarbosa/044d132c1dd4488ffc00b73e046bf8a7 to your computer and use it in GitHub Desktop.
Script to backup MySQL databases based on local directories
#! /bin/bash
# To run: sh mysqldump.sh 2>&1 | tee "mysqldump_$(date +"%F_%T").log"
TIMESTAMP=$(date +"%F")
echo "Script to backup MySQL databases based on local directories"
echo "-----------------------------------------------------------"
echo ""
for d in */ ; do
DATABASE=`echo $d | sed 's/.$//'`
BACKUP_DIR="$d$TIMESTAMP"
echo "-----------------------------------------------------------"
echo "Database: $DATABASE"
echo "Backup Dir: $BACKUP_DIR"
if [ -d "$BACKUP_DIR" ]; then
echo "Backup already done in $TIMESTAMP"
else
mkdir -p "$BACKUP_DIR"
databases=`mysql --login-path=$DATABASE -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema|mysql|test)"`
for db in $databases; do
echo "Dumping database: $db"
mysqldump --login-path=$DATABASE --force --opt --verbose --databases $db | gzip > "$BACKUP_DIR/$db.gz"
done
fi
echo "-----------------------------------------------------------"
echo ""
sleep 1
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment