• 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 # 删除所有的定时任务
  • 相关阅读:
    web项目优化
    mysql 优化笔记
    Java 调用 google 翻译
    Git回滚merge操作
    mybatis 批量插入 返回主键id
    idea tomcat debug 失效
    mysql 常用语句
    xstream 解析xml报文
    activeMQ 讲解及实战
    linux svn apache
  • 原文地址:https://www.cnblogs.com/eeoo/p/8078860.html
Copyright © 2020-2023  润新知