美文网首页
Linux服务器MySQL数据库定时自动备份/自动删除/远程备份

Linux服务器MySQL数据库定时自动备份/自动删除/远程备份

作者: 不是王大锤 | 来源:发表于2019-11-04 20:46 被阅读0次

    内容:
    1、创建存放备份文件的目录
    2、编写自动备份脚本(包含自动删除)
    3、设置定时备份任务

    备注:如需备份到其他主机,所有操作均在目标主机上操作

    一、创建存放备份文件的目录

     [root@A]# mkdir /home/dbback   
     [root@A home]# ls
     dbback 
    

    二、编写自动备份/自动删除shell脚本

    1、 在dback目录下新建脚本mysqlback.sh
     [root@A]# vi /home/dbback/mysqlback.sh
    
    2、编写脚本(远程与本地区别在于:-h '远程主机IP')
    #!/bin/bash
    #数据表自动备份脚本
    # Name:bakmysql.sh
    # This is a ShellScript For Auto DB Backup and Delete old Backup
    
    #备份存放路径
    backupdir=/home/dbback
    #时间格式
    time=` date +%Y%m%d%H `
    
    #本地备份单个数据库(结构+数据):mysqldump路径+用户+用户密码+数据库名> $存放路径/备份包命名$时间格式
    /usr/local/mysql/bin/mysqldump -u root -p密码 --databases dbname | gzip > $backupdir/dbbackname$time.sql.gz
    
    #备份远程主机数据库
    #/usr/local/mysql/bin/mysqldump -h '远程主机IP' -u root -p密码 --databases dbname | gzip > $backupdir/dbbackname$time.sql.gz
    
    #备份多个数据库
    #/usr/local/mysql/bin/mysqldump -u root -p密码 --databases 数据库1 数据库2 | gzip > $backupdir/dbbackname$time.sql.gz
    
    #备份所有数据库(-A:结构+数据)(-A -d:只备份结构)
    #/usr/local/mysql/bin/mysqldump -u root -p密码 -A -d | gzip > $backupdir/dbbackname$time.sql.gz
    
    #删除1天前(-mtime +1)的文件
    rm -rf $(find  /home/dbback/ -mtime +1 -name "*.sql.gz")
    
    3、设置脚本执行权限
       [root@A]#chmod +x /home/dbback/mysqlback.sh
       执行验证
       [root@A dbback]#./mysqlback.sh
       忽视报错,在dbback目录下生成备份文件代表脚本运行成功
    

    三、设置定时备份任务

    1、在crontab末尾加入自动执行脚本命令(每天03:15执行)
    [root@A]# vi /etc/crontab
    命令:15 03 * * * root /home/dback/mysqlback.sh
    
    2、 保存退出,重启cron。
    [root@A]# /etc/rc.d/init.d/crond restart
    Stopping crond:                                            [  OK  ]
    Starting crond:                                            [  OK  ]
    
    3、时间设置规则
    分 时 日 月 周 root/脚本路径
    
    M: 分钟(0-59)。每分钟用*或者 */1表示
    H:小时(0-23)。(0表示0点)
    D:天(1-31)。
    m: 月(1-12)。
    d: 一星期内的天(0~6,0为星期天)。
    每五分钟执行    */5 * * * *
    每小时执行      0 * * * *
    每天执行        0 0 * * *
    每周执行        0 0 * * 0
    每月执行        0 0 1 * *
    每年执行        0 0 1 1 *
    

    相关文章

      网友评论

          本文标题:Linux服务器MySQL数据库定时自动备份/自动删除/远程备份

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