#!/bin/bash

DBUSER=root
DB=mysql
FMTOPTIONS='--skip-column-names -E'
COMMAND='SHOW DATABASES'
BACKUPDIR=/dbbackup

# Backup all databases except for information_schema and performance_schema
echo 
for DBNAME in $(mysql $FMTOPTIONS -U$DBUSER $DB -e "$COMMAND" | grep -v ^* | grep -v information_schema | grep -v performance_schema); do
	echo "Backing up \"$DBNAME\""
	mysqldump -u $DBUSER $DBNAME > $BACKUPDIR/$DBNAME.dump
done

# Report backup size and percent of backup total

echo
echo "================================================================"
printf "%-30s\t%8s\t%5s\n" Database Size "Percent of Total"
echo "================================================================"

for DBDUMP in $BACKUPDIR/*; do
	SIZE=$(stat --printf "%s\n" $DBDUMP)
	TOTAL=$[ $TOTAL + $SIZE ]
done

for DBDUMP in $BACKUPDIR/*; do
	SIZE=$(stat --printf "%s\n" $DBDUMP)
	printf "%-30s\t%8d\t%5.2f%%\n" $DBDUMP $SIZE $[ 100 * $SIZE / $TOTAL ]
done

echo
