mysql实现自动备份数据库

1、新建.sh文件,内容是

# encoding: utf-8
#配置参数  
USER=root #数据库用户名  
PASSWORD=123456 #数据库用户密码 
DATABASE=cnm #数据库名称  
WEBMASTER="xingyunyy@qq.com" #管理员邮箱地址,用以发送备份失败消息提醒
BACKUP_DIR=/home/HuiLife_Backup #备份文件存储路径
LOGFILE=/home/HuiLife_Backup/backup.log  #日志文件路径 
DATE=`date +"%Y%m%d-%H%M"` #日期格式(作为文件名) 

FILENAME=$DATABASE$DATE.gz #压缩文件名
OPTIONS="-u$USER  -p$PASSWORD cnm | gzip "
#mysqldump 参数 详情见帮助  mysqldump -help
 
#判断备份文件存储目录是否存在,否则创建该目录 
if [ ! -d $BACKUP_DIR ]; then
    mkdir -p "$BACKUP_DIR"
fi
 
#开始备份之前,将备份信息头写入日记文件 
echo "———————————————–" >> $LOGFILE
echo "BACKUP DATE:" $(date +"%y-%m-%d %H:%M:%S") >> $LOGFILE

 
#切换至备份目录 
cd $BACKUP_DIR
 
#使用mysqldump 命令备份制定数据库,并以格式化的时间戳命名备份文件
mysqldump -u$USER -p$PASSWORD  $DATABASE | gzip > $BACKUP_DIR/$FILENAME
 
#判断数据库备份是否成功 
if [[ $? == 0 ]]; then
    #输入备份成功的消息到日记文件 
    echo "[$BACKUP_DIR/$DATABASE$FILENAME] Backup Successful!" >> $LOGFILE
else
    echo "Database Backup Fail!" >> $LOGFILE
    #备份失败后向网站管理者发送邮件提醒,需要mailutils或者类似终端下发送邮件工具的支持
    #如果需要发邮件,且mail配置好了,就去掉下面的注释
    echo "数据库备份错误,请及时检查!时间:"`date +"%Y年%m月%d日  %H点%M分"` | mail -s "Database DATABASE Daily Backup Fail" $WEBMASTER
fi
 
#输出备份过程结束的提醒消息
echo "Backup Process Done"

核心内容是:

filename=`date +%Y%m%d`
/usr/bin/mysqldump -u root -proot cnm | gzip > /root/HuiLife_Backup/cnm$filename.gz

 (1)邮件提醒功能依赖sendmail

2、辅助执行权限并测试

chmod +x autobackup
./autobackup

3、实现自动备份

 要求安装Cron服务(定时任务管理服务器)

 vi /etc/crontab

最后加入:(每天18:45执行)

45 18 * * * root  /root/autobackup

Done!