Created
December 11, 2015 03:58
-
-
Save vik-y/deec726d3637c6705982 to your computer and use it in GitHub Desktop.
A script to backup all mysql databases
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/sh | |
# System + MySQL backup script | |
# Copyright (c) 2008 Marchost | |
# This script is licensed under GNU GPL version 2.0 or above | |
# --------------------------------------------------------------------- | |
# Taken from : https://www.howtoforge.com/shell-script-to-back-up-all-mysql-databases-each-table-in-an-individual-file-and-upload-to-remote-ftp | |
######################### | |
######TO BE MODIFIED##### | |
### System Setup ### | |
BACKUP="Mysql_backup" | |
### MySQL Setup ### | |
MUSER="root" | |
MPASS="" | |
MHOST="localhost" | |
### FTP server Setup ### | |
FTPD="YOUR_FTP_BACKUP_DIR" | |
FTPU="YOUR_FTP_USER" | |
FTPP="YOUR_FTP_USER_PASSWORD" | |
FTPS="YOUR_FTP_SERVER_ADDRESS" | |
######DO NOT MAKE MODIFICATION BELOW##### | |
######################################### | |
### Binaries ### | |
TAR="$(which tar)" | |
GZIP="$(which gzip)" | |
FTP="$(which ftp)" | |
MYSQL="$(which mysql)" | |
MYSQLDUMP="$(which mysqldump)" | |
### Today + hour in 24h format ### | |
NOW=$(date +"%d%H") | |
### Create hourly dir ### | |
mkdir $BACKUP/$NOW | |
### Get all databases name ### | |
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')" | |
for db in $DBS | |
do | |
### Create dir for each databases, backup tables in individual files ### | |
mkdir $BACKUP/$NOW/$db | |
for i in `echo "show tables" | $MYSQL -u $MUSER -h $MHOST -p$MPASS $db|grep -v Tables_in_`; | |
do | |
FILE=$BACKUP/$NOW/$db/$i.sql.gz | |
echo $i; $MYSQLDUMP --add-drop-table --allow-keywords -q -c -u $MUSER -h $MHOST -p$MPASS $db $i | $GZIP -9 > $FILE | |
done | |
done | |
### Compress all tables in one nice file to upload ### | |
ARCHIVE=$BACKUP/$NOW.tar.gz | |
ARCHIVED=$BACKUP/$NOW | |
$TAR -cvf $ARCHIVE $ARCHIVED |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment