You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
971 B
Bash

#!/bin/bash
# DO a flag for docker/standalone mysql
SERVER=rn2
BACKUPDIR=/home/nathan/backup/sql
DATE=$(date +%Y%m%d)
USER=nathan
PASSWORD=password
REMOTE=alphavps
REMOTEBACKUP=~/backups/sql/$SERVER
# To make this be for a non-docker mysql instance, just omit everything up to 'mysql'
DBS="$(sudo docker exec mariadb mysql -u$(echo $USER) -p$(echo $PASSWORD) -Bse 'show databases' | egrep -v '^Database$|hold$' | grep -v 'performance_schema\|information_schema\|mysql\|sys')"
for DB in ${DBS[@]};
do
mkdir -p $BACKUPDIR/$DB
# Take the backup
sudo docker exec -it mariadb mysqldump -u$(echo $USER) -p$(echo $PASSWORD) $DB > $BACKUPDIR/$DB/${DB}_${DATE}
# Change the directory, to prevent backup to all path
cd $BACKUPDIR
# tarball the backup
tar -zcf $DB/${DB}_${DATE}.gz $DB/${DB}_${DATE}
# remove untarballed
rm $BACKUPDIR/$DB/${DB}_${DATE}
#ssh $REMOTE mkdir -p $REMOTEBACKUP/$DB
#scp $BACKUPDIR/$DB/${DB}_${DATE}.gz $REMOTE:$REMOTEBACKUP/$DB
done