#!/bin/bash
BACKUP_DATE=`date +%F\ %T`
WEEK=`date +%w`
BACKUP_DATE1=`date +%F`
IP=`/sbin/ifconfig eth1|/bin/grep "inet addr"|/bin/cut -d : -f 2|/bin/awk '{print $1}'|/bin/cut -d . -f 4`
BACKUP_PATH="/home/backup/${IP}/mysql"
LOG_FILE="${BACKUP_PATH}/mysql_${BACKUP_DATE1}.log"
MYSQL_USER='root'
MYSQL_PASSWORD='123456'
MYSQL_PATH="/usr/bin"
MYSQL="${MYSQL_PATH}/mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD}"
MYSQL_DUMP="${MYSQL_PATH}/mysqldump -u${MYSQL_USER} -p${MYSQL_PASSWORD}"
# if BACKUP_PATH doesn't exists,mkdir
[ -d $BACKUP_PATH ] || mkdir -p $BACKUP_PATH
#========================Backup start==========================
echo "--------------backup start ${BACKUP_DATE}-----------------" >> ${LOG_FILE}
DBNAME=`${MYSQL} ${dbname} -e 'show databases;'|sed '1d'`
echo "DATABASE LIST:" >> ${LOG_FILE}
echo ${DBNAME} >> ${LOG_FILE}
echo >> ${LOG_FILE}
for dbname in ${DBNAME}
do
mkdir -p "${BACKUP_PATH}/${dbname}_${WEEK}"
echo -e "${dbname} backup start ${BACKUP_DATE}" >> ${LOG_FILE}
TABNAME=`${MYSQL} ${dbname} -e 'show tables;'|sed '1d'`
echo "TABLE LIST:" >> ${LOG_FILE}
echo ${TABNAME} >> ${LOG_FILE}
echo >> ${LOG_FILE}
for tabname in ${TABNAME}
do
[ -d${BACKUP_PATH}/${dbname}_${WEEK}/${tabname}] ||mkdir -p ${BACKUP_PATH}/${dbname}_${WEEK}/${tabname}
${MYSQL_DUMP}${dbname} ${tabname} >> ${BACKUP_PATH}/${dbname}_${WEEK}/${tabname}/${tabname}_${BACKUP_DATE1}.sql
done
done
echo "--------------backup end ${BACKUP_DATE}-----------------" >> ${LOG_FILE}
/usr/local/bin/mailx -s "201_mysql backup log" 123456@126.com < "${LOG_FILE}"
本文转自独弹古调 51CTO博客,原文链接:http://blog.51cto.com/hunkz/1600017,如需转载请自行联系原作者