首页 > 代码库 > mysql实现自动备份数据库

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 "———————————————–" >> $LOGFILEecho "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!" >> $LOGFILEelse    echo "Database Backup Fail!" >> $LOGFILE    #备份失败后向网站管理者发送邮件提醒,需要mailutils或者类似终端下发送邮件工具的支持    #如果需要发邮件,且mail配置好了,就去掉下面的注释    echo "数据库备份错误,请及时检查!时间:"`date +"%Y年%m月%d日  %H点%M分"` | mail -s "Database DATABASE Daily Backup Fail" $WEBMASTERfi #输出备份过程结束的提醒消息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!

 

mysql实现自动备份数据库