zoukankan      html  css  js  c++  java
  • Mysql定时备份数据脚本

    项目集群搭建完成,数据库虽有做主从同步,但考虑到数据安全性,为了满足这个需求那么要每天对数据备份处理,

    但每天手动进行备份处理太过于被动,而且白天用户访问,会有数据变化以及在备份时会影响服务器正常运行的性能,

    所以考虑写一个脚本,并制定一个定时任务进行执行脚本备份数据;

    #!/bin/bash
    ###数据库定时备份,并将备份的库进行打包压缩
    user=root
    passwd=123456
    back_path=/vdb1/mysql/backup
    data_name=zmq123
    date=`date +%Y%m%d`

    mkdir $back_path/$date
    mysqldump -u $user -p$passwd $data_name |gzip > $back_path/$date/$data_name.sql.gz

    #定时任务,计划在每天晚上23点55分进行数据备份
    55 23   *  *  * . /vdb1/mysql/mysqldump.sh

    当运行了一段时间后,发现备份的数据有些占磁盘空间的,而我要保存的只是最近一月的数据就可以了,所以将这个脚本进行升级,

    在可能没有人注意的情况下,而磁盘不会被备份数据占满;

    ###升级版每天晚上11:55分进行定时备份,
    #!/bin/bash
    year=`date +%Y`
    month=`date +%m`
    day=`date +%d`
    backpath=/vdb1/mysql/backup/$year$month/
    user=root
    passwd=123456
    dataname=zmq123

    [ -d $backpath ] || mkdir -p $backpath
    rq=`date +%Y%m%d`
    mysqldump -u $user -p$passwd $dataname|gzip >$backpath/$rq.sql.gz

    #定时任务
    分 时   日 月 周
    55 23   *  *  * . /vdb1/mysql/mysqldump.sh

    ########每月2号晚上11:30进行定时删除上个月备份数据
    #!/bin/bash
    year=`date +%Y`
    month=`date +%m`
    month=`expr $month - 1`
     if [ $month -eq 0 ];then
        month=12
        day=31
        year=`expr $year - 1`
     fi

     if [ $month -lt 10 ];then
        pre=0
     fi

    backdir=/vdb1/mysql/backup/$year$pre$month
    rm -rf $backdir                    #删除上一个月的数据
    ##定时任务
    30 23  2 * * . /vdb1/mysql/delmysqlbak.sh

    OK!编写完成,先运行段时间看下吧!有情况再进行改进;

  • 相关阅读:
    批处理显示系统信息与硬件信息
    批处理获取操作系统版本信息
    k2 4.6.9安装记录-够复杂了
    NAT路由器打洞原理
    function与感叹号
    leetcode 83. Remove Duplicates from Sorted List
    leetcode 53. Maximum Subarray
    leetcode 101. Symmetric Tree
    leetcode 191. Number of 1 Bits
    胜利的欲望不会给你胜利
  • 原文地址:https://www.cnblogs.com/wangsongbai/p/9282172.html
Copyright © 2011-2022 走看看