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