首页 > 代码库 > 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实现自动备份数据库
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。