diff --git a/backup/backup_sql.sh b/backup/backup_sql.sh new file mode 100755 index 0000000..76be204 --- /dev/null +++ b/backup/backup_sql.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# TODO: Use a password file instead of passing password to script + +SERVER=racknerd +BACKUPDIR=/home/nathan/backups/$SERVER +DATE=$(date +%Y%m%d) +DBS="$(mysql -u admin -ppassword -Bse 'show databases' | egrep -v '^Database$|hold$' | grep -v 'performance_schema\|information_schema\|mysql')" +REMOTE=nathan@alphavps.aney.co.uk +REMOTEBACKUP=~/backups/sql/$SERVER + +for DB in ${DBS[@]}; +do + mkdir -p $BACKUPDIR/$DB + # Take the backup + mysqldump -u admin -ppassword $DB > $BACKUPDIR/$DB/${DB}_${DATE} + # tarball the backup + # Change the directory, to prevent backup to all path + cd $BACKUPDIR + tar -zcf $DB/${DB}_${DATE}.gz $DB/${DB}_${DATE} + # remove untarballed + rm $BACKUPDIR/$DB/${DB}_${DATE} + + ssh nathan@alphavps.aney.co.uk mkdir -p $REMOTEBACKUP/$DB + scp $BACKUPDIR/$DB/${DB}_${DATE}.gz nathan@alphavps.aney.co.uk:$REMOTEBACKUP/$DB +done +