zoukankan      html  css  js  c++  java
  • Linux 备份数据库mysql

    Linux 备份数据库mysql

      自动远程备份mysql数据库,保留最近7天数据,每天00:00备份

      包含两方面:脚本和定时任务

    1、编写备份脚本

    (1)创建目录:mkdir -p /home/dbback/mysql_backup

    (2)构建备份文件:vim mysql_backup.sh(内容如下代码块)

    (3)赋予执行权限:chmod +x mysql_backup.sh

    注:注意格式,如:if条件[ ! -d ${dbpath} ],[]内两边要有空格

    #!/bin/bash
    
    file_name=`date +%Y%m%d`
    path="/home/dbback/mysql_backup/"
    all_db_array=( db1 db2 db3 )
    
    for dbname in ${all_db_array[@]}
    do
    
    # 创建数据库目录
    dbpath="${path}${dbname}/"
    if [ ! -d ${dbpath} ] 
    then
    mkdir -p ${dbpath}
    fi
    
    # 备份数据库
    mysqldump -h 192.168.160.112 -uroot -pzy888+ $dbname > ${dbpath}${dbname}_${file_name}.sql
            echo "mysql_back_40,${dbname} ok."
    
    # 只保留最近7天的数据
    str=`find ${dbpath} -name "${dbname}*.sql"|xargs ls -t`
    array=($str)
    len=${#array[@]}
    if [ $len -gt 7 ]
    then
      last=$len-1
      needrm=${array[@]:7:$last}
      rm -rf ${needrm}
              echo "删除的文件是:${needrm}"
    fi
    
    done

    2、定时任务

    crontab 定时任务,crontab文件的格式为“M H D m d cmd”。其中,M代表分钟(0~59),H代表小时(0~23),D代表天(1~31),m代表月(1~12),d代表星期(0~6,0为星期天),cmd代表要运行的程序。例如:* * * * *代表每分钟都执行

    [root@localhost ~]# crontab -e  # 编辑
    00 00 * * * /home/dbback/mysql_backup/mysql_backup.sh 
    [root@localhost
    ~]# crontab -l # 查看列表
    00 00 * * * /home/dbback/mysql_backup/mysql_backup.sh
    [root@localhost
    ~]# crontab -r # 删除所有的定时任务
  • 相关阅读:
    P1371 NOI元丹
    最小费用最大流
    City Game UVALive
    P2389 电脑班的裁员
    P1959 遗址_NOI导刊2009普及(6)
    P2700 逐个击破
    P1630 求和
    P4310 绝世好题
    java常用类:1。包装类(以Integer类为例)2.String类 3.StringBuffer
    java异常,异常处理,异常类 关键字:throws 和 throw 自定义的异常类
  • 原文地址:https://www.cnblogs.com/eeoo/p/8078860.html
Copyright © 2011-2022 走看看