zoukankan      html  css  js  c++  java
  • 通过shell定时备份数据库

    需求:

    1. 每天凌晨2:10备份数据库zhengDB到 /data/backup/db。
    2. 备份开始和结束能够给出相应提示信息。
    3. 备份后的文件标识标准为已备份时间为文件名,并打包成 .tar.gz 的形式,如:2018-07-01_211802.tar.gz。
    4. 在备份的同时,检查是否有10天前备份的数据库文件,如果有就将其删除。

    步骤:

    step1 : 编写shell并授权

    vim mysql_db_backup.sh
    #!/bin/bash
    
    #完成数据库的定时备份。
    #备份的路径
    BACKUP=/data/backup/db
    #当前的时间作为文件名
    DATETIME=$(date +%Y_%m_%d_%H%M%S)
    #可以输出变量调试
    #echo ${DATETIME}
    
    echo "=======开始备份========"
    echo "=======备份的路径是 $BACKUP/$DATETIME.tar.gz"
    
    #主机
    HOST=localhost
    #用户名
    DB_USER=root
    #密码
    DB_PWD=123
    #备份数据库名
    DATABASE=zhengDB
    #创建备份的路径
    #如果备份的路径文件夹存在,就使用,否则就创建
    [ ! -d "$BACKUP/$DATETIME" ] && mkdir -p "$BACKUP/$DATETIME"
    #执行mysql的备份数据库的指令
    mysqldump -u${DB_USER} -p${DB_PWD} --host=$HOST  $DATABASE | gzip > $BACKUP/$DATETIME/$DATETIME.sql.gz
    #打包备份文件
    cd $BACKUP
    tar -zcvf $DATETIME.tar.gz $DATETIME
    #删除临时目录
    rm -rf $BACKUP/$DATETIME
    
    #删除10天前的备份文件
    find $BACKUP -mtime +10 -name "*.tar.gz" -exec rm -rf {} ;
    echo "=====备份文件成功==========="
    chmod 744 mysql_db_backup.sh   #授权

    step2 : 设置定时任务

    crontab -e

    在弹出的vim编辑中编辑定时任务并保存

    10 2 * * * /usr/sbin/mysql_db_backup.sh
  • 相关阅读:
    面试题汇总--1
    行内元素与块级元素
    前端面试题整理---JS基础
    springmvc处理一个请求的全流程
    反射+动态代理+类加载+JVM
    json注解及序列化
    加密
    Thread setUncaughtExceptionHandler
    RunTime.getRunTime().addShutdownHook 添加钩子
    MySQL日志
  • 原文地址:https://www.cnblogs.com/zjfjava/p/9251477.html
Copyright © 2011-2022 走看看