欢迎光临
我们一直在努力

怎么用shell脚本进行MySQL数据库定时备份 - 数据库

本篇内容介绍了“怎么用shell脚本进行MySQL数据库定时备份”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

  #!/bin/bash 
    #Shell Command For Backup MySQL Database Everyday Automatically By Crontab 
    #Author : Carlos Wong 
    #Date : 2012-03-17 
 
    #配置参数 
    USER=root #数据库用户名" >用户名 
    PASSWORD=××××× #数据库用户密码 
    DATABASE=TIENIUZAI    #数据库名称 
    WEBMASTER=tieniuzai@qq.com #管理员邮箱地址,用以发送备份失败消息提醒 
    BACKUP_DIR=/var/www/Data_Backup/topons/ #备份文件存储路径 
    LOGFILE=/var/www/Data_Backup/topons/data_backup.log #日记文件路径 
    DATE=`date ‘+%Y%m%d-%H%M’` #日期格式(作为文件名) 
    DUMPFILE=$DATE.sql #备份文件名 
    ARCHIVE=$DATE.sql.tgz #压缩文件名 
    OPTIONS=”-u$USER -p$PASSWORD –opt –extended-insert=false –triggers=false -R –hex-blob –flush-logs –delete-master-logs -B $DATABASE”  #mysqldump 参数 详情见帮助 mysqldump -help 
 
    #判断备份文件存储目录是否存在,否则创建该目录 
    if [ ! -d $BACKUP_DIR ] ; 
    then 
    mkdir -p “$BACKUP_DIR” 
    fi 
 
    #开始备份之前,将备份信息头写入日记文件 
    echo ” ” >> $LOGFILE 
    echo ” ” >> $LOGFILE 
    echo “———————————————–” >> $LOGFILE 
    echo “BACKUP DATE:” $(date +”%y-%m-%d %H:%M:%S”) >> $LOGFILE 
    echo “———————————————– ” >> $LOGFILE 
 
    #切换至备份目录 
    cd $BACKUP_DIR 
    #使用mysqldump 命令备份制定数据库,并以格式化的时间戳命名备份文件 
    mysqldump $OPTIONS > $DUMPFILE 
    #判断数据库备份是否成功 
    if [[ $? == 0 ]]; then 
    #创建备份文件的压缩包 
    tar czvf $ARCHIVE $DUMPFILE >> $LOGFILE 2>&1 
    #输入备份成功的消息到日记文件 
    echo “[$ARCHIVE] Backup Successful!” >> $LOGFILE 
    #删除原始备份文件,只需保 留数据库备份文件的压缩包即可 
    rm -f $DUMPFILE 
    else 
    echo “Database Backup Fail!” >> $LOGFILE 
 
    #备份失败后向网站管理者发送邮件提醒,需要mailutils或者类似终端下发送邮件工具的支持 
    #mail -s “Database:$DATABASE Daily Backup Fail” $WEBMASTER 
    fi 
    #输出备份过程结束的提醒消息 
    echo “Backup Process Done”

使用: 
 
    将以上代码保存到: /usr/sbin/DataBackup     (文件名随意,只要不跟系统原有的命令同名即可;代码可以放到任何地方,放在sbin目录下只是为了方便执行,sbin目录下的文件/目录可在终端直接调 用,类似于下PATH变量指定的目录) 
    为脚本添加可执行权限:  sudo chmod +x  /usr/sbin/DataBackup 
    执行脚本: sudo  DataBackup 
    如果需要定时执行备份命令的,只需将下面这段代码放到crontab 文件(sudo vim /etc/crontab)中去就可以了: 
 
    01 3 * * * root /usr/sbin/DataBackup    #它代表着将于每天3点执行DataBackup脚本 

怎么用shell脚本进行MySQL数据库定时备份 - 数据库

“怎么用shell脚本进行MySQL数据库定时备份”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注云网站,小编将为大家输出更多高质量的实用文章!

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。