美文网首页
阿里云Centos7定时备份MySQL数据库

阿里云Centos7定时备份MySQL数据库

作者: 深入浅出 | 来源:发表于2018-06-13 09:45 被阅读0次

    创建文件夹(存放备份数据)

    cd /data
    mkdir -p bak/mysqldata
    

    编写脚本

    vi /usr/sbin/bakmysql.sh
    

    bakmysql.sh脚本内容

    DATE=`date +%Y%m%d%H%M` #every minute
    DATABASE=ei #database name
    DB_USER=root #database username
    DB_PASS="123456" #database password
    BACKUP=/data/bak/mysqldata #backup path
    
    #backup command
    #测试:/usr/bin/mysqldump -uroot -p"123456" -h 127.0.0.1 -R --opt ei |gzip > /data/bak/mysqldata\/ei_2018061303.sql.gz
    
    /usr/bin/mysqldump -u$DB_USER -p$DB_PASS -h 127.0.0.1 -R --opt $DATABASE |gzip > ${BACKUP}\/${DATABASE}_${DATE}.sql.gz
    
    #just backup the latest 5 days 
    #测试:find /data/bak/mysqldata -name "ei_*.sql.gz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1
    
    find ${BACKUP} -name "${DATABASE}_*.sql.gz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1
    

    如果权限不足,给权限

    chmod +x /usr/sbin/bakmysql.sh
    

    设置定时备份任务(注意:非root用户登录要用sudo,否则执行失败)

    crontab -e
    // 非root用户
    sudo crontab -e
    

    添加如下任务

    // 每天凌晨3点备份一次
    0 3 * * * /usr/sbin/bakmysql.sh
    
    // 每隔3分执行(测试时使用)
    */3 * * * * /usr/sbin/bakmysql.sh
    

    查看已备份数据

    ls /data/bak/mysqldata
    

    常用命令

    // 查看已创建的调度任务
    crontab -l
    // 启动
    /sbin/service crond start
    // 停止
    /sbin/service crond stop
    // 重启服务
    /sbin/service crond restart
    // 重新加载配置
    /sbin/service crond reload
    

    相关文章

      网友评论

          本文标题:阿里云Centos7定时备份MySQL数据库

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