美文网首页
Linux_Shell脚本编程之定时备份数据库

Linux_Shell脚本编程之定时备份数据库

作者: 让你变好的过程从来都不会很舒服 | 来源:发表于2021-07-11 15:18 被阅读0次

    Shell编程综合案例

    需求分析:

    1、每天凌晨 2:30 备份数据库 jqedu 到 /data/backup/db
    2、备份开始和备份结束能够给出相应的提示信息
    3、备份后的文件要求以备份时间为文件名,并打包成 .tar.gz 的形式,比如 2021-06-27_230201.tar.gz
    4、在备份的同时,检查是否有10天前备份的数据库文件,如果有就将其 删除

    思路分析图

    步骤:

    1、写Shell脚本

    #!/bin/bash
    #备份目录
    BACKUP=/data/backup/db
    #当前时间
    DATETIME=$(date +%Y-%m-%d_%H%M%S)
    echo $DATETIME
    #数据库的地址
    HOST=localhost
    #数据库的用户名
    DB_USER=root
    #数据库的密码
    DB_PW=root
    #备份的数据库名
    DATABASE=jqedu
    
    #创建备份目录,如果不存在,就创建
    [ ! -d "${BACKUP}/${DATETIME}" ] && mkdir -p "${BACKUP}/${DATETIME}"
    
    #备份数据库
    mysqldump -u${DB_USER} -p${DB_PW} --host=${HOST} -q -R --databases ${DATABASE} | gzip > ${BACKUP}/${DATETIME}/$DATETIME.sql.gz
    
    #将文件处理成 tar.gz
    cd ${BACKUP}
    tar -zcvf $DATETIME.tar.gz ${DATETIME}
    #删除对应的备份目录
    rm -rf ${BACKUP}/${DATETIME}
    
    #删除10天前的备份文件
    find ${BACKUP} -atime +10 -name "*.tar.gz" -exec rm -rf {} \;
    echo "备份数据库${DATABASE} 成功~"
    
    

    2、写任务调度


    30 2 * * * /usr/sbin/mysql_db_backup.sh
    

    3、调度添加成功


    相关文章

      网友评论

          本文标题:Linux_Shell脚本编程之定时备份数据库

          本文链接:https://www.haomeiwen.com/subject/vhmxultx.html