Created
March 18, 2014 19:39
-
-
Save jimmyalcala/9627784 to your computer and use it in GitHub Desktop.
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 | |
### MySQL Server Login Info ### | |
MUSER="root" | |
MPASS="MYSQL-ROOT-PASSWORD" | |
MHOST="localhost" | |
MYSQL="$(which mysql)" | |
MYSQLDUMP="$(which mysqldump)" | |
BAK="/backup/mysql" | |
GZIP="$(which gzip)" | |
### FTP SERVER Login info ### | |
FTPU="FTP-SERVER-USER-NAME" | |
FTPP="FTP-SERVER-PASSWORD" | |
FTPS="FTP-SERVER-IP-ADDRESS" | |
NOW=$(date +"%d-%m-%Y") | |
### See comments below ### | |
### [ ! -d $BAK ] && mkdir -p $BAK || /bin/rm -f $BAK/* ### | |
[ ! -d "$BAK" ] && mkdir -p "$BAK" | |
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')" | |
for db in $DBS | |
do | |
FILE=$BAK/$db.$NOW-$(date +"%T").gz | |
$MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE | |
done | |
lftp -u $FTPU,$FTPP -e "mkdir /mysql/$NOW;cd /mysql/$NOW; mput /backup/mysql/*; quit" $FTPS |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Save script as /home/your-name/mysql.backup.sh file. Setup executable permission:
$ chmod +x /home/your-name/mysql.backup.sh
To backup MySQL, enter:
/home/your-name/mysql.backup.sh
OR
sudo /home/your-name/mysql.backup.sh
Run MySQL backup script as cron job
To automate procedure setup a cron job. For example run backup everyday at midnight (i.e once a day), enter:
$ sudo crontab -e
Append following cron job:
@midnight /home/you/mysql.backup.sh >/dev/null 2>&1