wolfymaster
12/3/2017 - 3:14 PM

DB Backup

Backup MySQL databases from server

#!/bin/bash

NOWDATE=`date +%Y-%m-%d`
DB_DIR=''
_USER=''
_PASS=''
_HOST=''

## Variables set above

sudo mkdir $DB_DIR  # Make the tmp DIR to store db files

databases=`mysql -u$_USER -h$_HOST -p$_PASS -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema|mysql|tmp)"`

for db in $databases; do
        mkdir $DB_DIR/$db

        tables=$(mysqlshow -h$_HOST -u$_USER -p$_PASS $db | sed '1,/Tables/d' | awk '{print $2}')

        for table in $tables; do
                mysqldump --force --opt -u$_USER -h$_HOST -p$_PASS --add-drop-table $db $table | gzip > $DB_DIR/$db/$table.gz
        done

        tar -zcvf  $DB_DIR/$db.tar.gz $DB_DIR/$db
        
# Upload to S3 & Remove Files
#        aws s3 cp $DB_DIR/$db.tar.gz s3://wolfy-client/_db/$db/$NOWDATE.tar.gz
#        rm $DB_DIR/$db.tar.gz
#        rm -fr $DB_DIR/$db

done

sudo rm -fr $DB_DIR # Remove tmp DB_DIR