Skip to content

Instantly share code, notes, and snippets.

@dogmatic69
Created January 9, 2013 23:02
Show Gist options
  • Save dogmatic69/4497823 to your computer and use it in GitHub Desktop.
Save dogmatic69/4497823 to your computer and use it in GitHub Desktop.
#!/bin/bash
DAY=$(date +"%a")
NOW=$(date +"%Y-%m-%d")
DATETIME=$(date +"%Y-%m-%d-%H:%M")
BACKUPHOME=/home/backups
BACKUPWORKING=$BACKUPHOME/.working
BACKUP=$BACKUPWORKING/.$$
EMAIL="[email protected]"
MUSER="root"
MPASS="root"
MHOST="localhost"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
GZIP="$(which gzip)"
### Backup config
# Create perm folders
[ ! -d $BACKUPHOME ] && mkdir -p $BACKUPHOME || :
[ ! -d $BACKUPHOME/mysql ] && mkdir -p $BACKUPHOME/mysql || :
[ ! -d $BACKUPHOME/www ] && mkdir -p $BACKUPHOME/www || :
[ ! -d $BACKUPHOME/config ] && mkdir -p $BACKUPHOME/config || :
# Create tmp folders
[ ! -d $BACKUPWORKING ] && mkdir -p $BACKUPWORKING || :
[ ! -d $BACKUP ] && mkdir -p $BACKUP || :
[ ! -d $BACKUP/mysql ] && mkdir -p $BACKUP/mysql || :
### File backup ###
### MySQL Backup ###
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do
if [[ "$db" = 'table_to_skip_here' ]]; then
continue
fi
echo "backing up: $db"
FILE=$BACKUP/mysql/$db.$NOW-$(date +"%T").gz
$MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE
done
tar -zcvf $BACKUPHOME/mysql/$DATETIME.tar.gz $BACKUP/mysql/
rm $BACKUP -r
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment