美文网首页
MySQL 自动备份并发送到邮箱

MySQL 自动备份并发送到邮箱

作者: 景岳 | 来源:发表于2018-07-28 10:05 被阅读100次
    准备工作

    阅读本文章之前请先查看 mutt 邮件发送 并搭建好邮件发送环境
    本文假定你已经搭建好了 mysql 环境,并且能使用 msyqldump 命令

    备份脚本
    mkdir -p /data/backup/mysql
    chown xxx:xxx /data/backup
    mkdir /opt/shells
    

    vim /data/shells/mysqlBackup.sh

    #!/bin/bash
    
    BACKUP_PATH=/data/backup/mysql
    CURRENT_TIME=$(date +%Y%m%d_%H%M%S)
    
    [ ! -d "$BACKUP_PATH" ] && mkdir -p "$BACKUP_PATH"
    
    #数据库地址
    HOST=localhost
    #数据库用户名
    DB_USER=root
    #数据库密码
    DB_PW=password
    
    # 要备份的数据库名
    DATABASE=blog
    FILE_GZ=${BACKUP_PATH}/$CURRENT_TIME.$DATABASE.sql.gz
    /usr/local/bin/mysqldump -u${DB_USER} -p${DB_PW} --host=$HOST -q -R --databases $DATABASE  | gzip > $FILE_GZ # 此处必须要用绝对路径
    
    # 所有数据库
    #mysqldump --all-databases -xxxxx
    
    echo "数据库备份--$FILE_GZ" | mutt -s "$DATABASE备份" ucer183@163.com -a $FILE_GZ
    
    # 删除 7 天以前的备份 「注意写法」
    cd $BACKUP_PATH
    find $BACKUP_PATH -mtime +7 -name "*sql.gz"  -exec rm -f {} \;
    

    chmod u+x mysqlBackup.sh

    执行下脚本看看有没有错误;

    ./mysqlBackup.sh

    凌晨三点三十分执行一次

    crontab -e
    30 03 * * * /data/shells/mysqlBackup.sh

    相关文章

      网友评论

          本文标题:MySQL 自动备份并发送到邮箱

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