zoukankan      html  css  js  c++  java
  • Linux实现定时备份MySQL数据库并删除30天前的备份文件

    1. MySQL5.6以上版本

    2. 修改 /etc/my.cnf 文件

    # vim /etc/my.cnf
    
    [client]
    host=localhost
    user=你的数据库用户
    password='你的数据库密码'

    3. 编写数据库脚本 mysql-backup.sh

    # vim mysql-backup.sh
    #!/bin/bash
    
    backupDir=数据库备份目录
    backupTime=`date +%Y%m%d%H%M%S`
    
    mysqldump 你的数据库 | gzip > $backupDir/你的数据库-$backupTime.sql.gz
    echo "1."$backupTime "备份完成" >> #backupDir/mysql.log
    
    cd $backupDir
    rm -rf `find . -name '*.sql.gz' -mtime +30` >> #backupDir/mysql.log 2>&1    #删除30天前备份文件
    echo "2.删除30天前的备份文件完成" >> #backupDir/mysql.log

    4. 为脚本添加执行权限

    # chmod +x mysql-backup.sh

    5. 测试执行

    ./mysql-backup.sh

    6. 添加定时计划

    # crontab -e (和vim编辑器一样)
    # crontab配置文件格式:分 时 日 月 周  命令
    
    # 在最后一行中加入:
    0 3 * * *   /usr/sbin/mysql-bakup.sh #表示每天3点00分执行备份
    0 */6 * * * /usr/sbin/mysql-bakup.sh #表示每6个小时执行备份

    7. 重启crontab

    # /etc/rc.d/init.d/crond restart

    8. 恢复数据库备份文件

    #SQL备份文件恢复:
    mysql -u root -p 你的数据库 < 备份文件名.sql
    
    #压缩文件恢复:
    gzip < 备份文件名.sql.gz | mysql -u root -p 你的数据库

    9. 附:如果出现问题:"mysqldump: command not found",解决如下:

    ln -fs /usr/local/mysql/bin/mysqldump /usr/bin
    ln -fs /usr/local/mysql/bin/mysql /usr/bin
  • 相关阅读:
    Spring Boot
    Linux入门
    synchronized(一)
    避免XSS攻击
    MySql概述及入门(五)
    MySQL概述及入门(四)
    上传漏洞总结-upload-labs
    文件类型解析漏洞防御与攻击(PHP)
    Dvna for Owasp top 10 2017
    XSS 漏洞介绍
  • 原文地址:https://www.cnblogs.com/hunttown/p/11737115.html
Copyright © 2011-2022 走看看