zoukankan      html  css  js  c++  java
  • linux脚本定时备份数据库表(详解)

    数据库备份策略

    1、备份的数据库

            服务器:10.10.10.254、10.2.11.10

            数据库:gps6

            备份的表: user_info alarminfo electronic_fence jpush last_point nav_device_info nav_mac_type_client_type_group nav_target_group nav_target_group nav_voice_recode sim_info user_device_tmp user_email user_info user_order web_column_info web_sms_send web_user_mail web_user_relevance_mac

    2、备份数据

              备份脚本:/data/mysql.sh

                       数据库备份地址:/data/mysql/backup

                       定时执行脚本:0 3 * * * /data/mysql.sh

                       执行时间:每天凌晨3:00执行

                       备份保存:15天

    3、实行流程

    1)         创建备份脚本/data/mysql.sh

    #!/bin/bash
    
    #设置mysql备份目录
    
    folder=/data/mysql/backup
    
    cd $folder
    
     
    
    day=`date +%Y%m%d`
    
    rm -rf $day
    
    mkdir $day
    
    cd $day
    
     
    
    #数据库服务 ip
    
    host=localhost
    
    #用户名
    
    user=root
    
    #密码  #&这些需要转义加\
    
    password=fhxt&cl15#
    
     
    
    #要备份的数据库
    
    db=gps6
    
     
    
    #需要备份的 tables
    
    tables=(user_info alarminfo electronic_fence jpush last_point nav_device_info nav_mac_type_client_type_group nav_target_group nav_target_group nav_voice_recode sim_info user_device_tmp user_email user_info user_order web_column_info web_sms_send web_user_mail web_user_relevance_mac)
    
     
    
    echo "================  开始备份..  ================="
    
    # 遍历备份的数据库表
    
    for t in ${tables[@]};
    
    do
    
        backup_file="${t}.sql"
    
     
    
    if [ ! -e "$backup_file" ];
    
    then
    
        rm -f "$backup_file"
    
    fi
    
       # 最核心的就是这句话,使用mysqldump命令执行备份
    
       # $db $t  数据库  相应的表
    
       mysqldump -h${host} -u${user} -p${password}  $db $t >$backup_file
    
    done
    
    finish_date=`date '+%Y-%m-%d %H:%M:%S'`
    
    echo "================  结束备份...  at ${finish_date}.==="
    
     
    
     
    
    #数据要保留的天数
    
    days=15
    
     
    
     
    
    cd ..
    
    day=`date -d "$days days ago" +%Y%m%d`
    
    #删除 相应的文件
    
    rm -rf $day

      

    2)         编写定时执行脚本命令

             执行命令:crontab -e   

             添加定时脚本:0 3 * * * /data/mysql.sh

    3)         查看定时任务

             命令:crontab -l

            

  • 相关阅读:
    Android JNI开发摘录(二)之JNI数组处理
    基于HTTP协议的下载功能实现
    javascript中的事件冒泡和事件捕获
    JavaScript模仿块级作用域
    javascript表单的Ajax 提交插件的使用
    论学历与经验
    使用Palette抽取图片颜色
    通过脚本和EL表达式获取域中数据
    需求分析
    Tomcat简介
  • 原文地址:https://www.cnblogs.com/lemon-flm/p/7727690.html
Copyright © 2011-2022 走看看