#!/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