Created
March 2, 2018 15:15
-
-
Save mgratch/1f5232f75ee357ce31fd3ed7d88e63c3 to your computer and use it in GitHub Desktop.
Prompt to backup DBs over 100mb -- if timeout default to backup
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# Create individual SQL files for each database automatically, | |
# but give me a chance to skip it. These files | |
# are imported automatically during an initial provision if | |
# the databases exist per the import-sql.sh process. | |
echo 'Starting custom vagrant halt...'; | |
mysql -e 'show databases' | \ | |
grep -v -F "information_schema" | \ | |
grep -v -F "performance_schema" | \ | |
grep -v -F "mysql" | \ | |
grep -v -F "test" | \ | |
grep -v -F "Database" | \ | |
while read dbname; do | |
db_size=$(mysql -uroot -ss -N -e "SELECT COALESCE(ROUND(SUM(data_length + index_length) / 1024 / 1024),0) AS 'size' FROM information_schema.TABLES WHERE table_schema = '$dbname'"); | |
if [ 100 -lt $db_size ]; then | |
while [ -z "$answer" ]; do | |
read -t 10 -p "$dbname seems large, back it up now? " answer </dev/tty | |
case "$answer" in | |
[yY]* ) answer=''; | |
mysqldump -uroot "$dbname" > /srv/database/backups/"$dbname".sql | |
echo "Database $dbname backed up..." | |
break;; | |
[nN]* ) answer='' | |
break;; | |
'') answer=''; | |
mysqldump -uroot "$dbname" > /srv/database/backups/"$dbname".sql | |
echo "Database $dbname backed up..." | |
break;; | |
* ) answer='' | |
echo "Dude, just enter Y or N, please." | |
continue;; | |
esac | |
done | |
else | |
mysqldump -uroot "$dbname" > /srv/database/backups/"$dbname".sql && echo "Database $dbname backed up..."; | |
fi | |
done; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment