backup shell script
#!/bin/sh
### System Setup ###
NOW=`date +%Y-%m-%d`
KEEPDAYS=5
#
### SSH Info ###
SHOST="sXXXX.gridserver.com" # XXXX is mt gs number
SUSER="serveradmin%mt_domain.com" # mt_domain is primary mt domain
SDIR="/home/XXXX/data/tmp" # XXXX is mt gs number
#
### MySQL Setup ###
MUSER="dbXXXX" # XXXX is mt gs number
MPASS="mysqlpass" # set to MySQL password
MHOST="internal-db.sXXXX.gridserver.com" # XXXX is mt gs number
DBS="dbXXXX_db1 dbXXXX_db2" # space separated list of databases to backup
#
### Local Writable directory on the server ###
EMAILID="name@email.com" # the email you want notification sent to
#
### Start MySQL Backup ###
attempts=0
for db in $DBS # for each listed database
do
attempts=`expr $attempts + 1` # count the backup attempts
FILE=$SDIR/mysql-$db.$NOW.sql.gz # Set the backup filename
# Dump the MySQL and gzip it up
ssh $SUSER@$SHOST "mysqldump -q -u $MUSER -h $MHOST -p$MPASS $db | gzip -9 > $FILE"
done
scp $SUSER@$SHOST:./mysql* . # copy all the files to backup server
ssh $SUSER@$SHOST rm ./mysql* # delete files on db server
# deleting of old files on backup
find ./mysql*.sql.gz -type f -daystart -mtime +$KEEPDAYS -exec rm {} \\;
#
### Mail me! ###
localfiles=`ls $LOCALDIR/*.$NOW.sql.gz`
count=0 # count local files from today
for file in $localfiles; do count=`expr $count + 1`; done
#
### Send mail ###
mail -s "Backups Report" $EMAILID << END
Success with $count of $attempts
The following databases were attempted backed up
$DBS
Files stored:
$localfiles
END
URL = Source