Skip to content

Instantly share code, notes, and snippets.

@metalmini
Last active September 23, 2015 12:47
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 metalmini/0ee517e5770a001b1de2 to your computer and use it in GitHub Desktop.
Save metalmini/0ee517e5770a001b1de2 to your computer and use it in GitHub Desktop.
Quick and dirty mysql back up per databases
#!/bin/bash
#set -x
TIMESTAMP=`date +%Y-%m-%d`
BACKUP_DIR="/tmp/backup"
MYSQL_USER="root"
MYSQL_PASSWD=`cat ~/.backup`
MYSQL=`which mysql`
MYSQLDUMP=`which mysqldump`
# We draaien 5 dumps tegelijkertijd om tijd te sparen
COMMIT_COUNT=0
COMMIT_LIMIT=5
mkdir -p "$BACKUP_DIR/mysql"
databases=`$MYSQL --user=$MYSQL_USER -p$MYSQL_PASSWD -e "SHOW DATABASES;" | grep -Ev "(mysql|Database|information_schema|performance_schema|lbaProd_Rotterdam)"`
count=0
for db in $databases; do
FILENAME=$TIMESTAMP-$db.gz
if [ $count != 0 ]
then
FILES="$FILES,$FILENAME"
else
FILES=$FILENAME
fi
$MYSQLDUMP --force --opt --user=$MYSQL_USER -p$MYSQL_PASSWD --databases $db | gzip > "$BACKUP_DIR/mysql/$FILENAME"
(( COMMIT_COUNT++ ))
if [ ${COMMIT_LIMIT} -eq ${COMMIT_COUNT} ]
then
COMMIT_COUNT=0
wait
fi
((count++))
done
echo $FILES
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment