zoukankan      html  css  js  c++  java
  • 利用mysqldump 与 nginx定时器 定时备份mysql库

    1.安装mysqldump(如果备份远程mysql库,本地不用安装mysql 也可以单独使用)

    yum -y install holland-mysqldump.noarch

    2.编写备份脚本

    首先这里我还是进入到/usr/local/shell 目录下编写脚本

    vi mysql_backup.sh

    #!/bin/bash
    #备份文件存储的目录
    BACKUP_DIR=/data/backup/mysql
     
    #以执行的日期作为文件名,以防文件名重复覆盖
    DATE=$(date +%Y_%m_%d)
     
    #连接mysql用户名、密码、IP、数据库名,请根据自己的自行修改
    #用户名
    MYSQL_USER=root
     
    #密码
    MYSQL_PWD=123qweASD.
     
    #因为我这是本地备份,就使用localhost
    HOST=localohost
     
    #使用的数据库
    DATABASE=backup_test
     
    echo "mysql backup start $DATE"
    #判断一下如果备份的目录不存在,就创建该目录,两种写法都行,目前我把两种方式都列出了,想尝试方式二的把注释放掉即可
    #方式一:
    if [ ! -d $BACKUP_DIR/$DATE ]
    then mkdir -p $BACKUP_DIR/$DATE
    fi
    #方式二
    #[ ! -d $BACKUP_DIR/$DATE ] && mkdir -p $BACKUP_DIR/$DATE
     
    #执行mysql备份数据库指令   其实最好将此文件进行压缩打包,这里简单保存为一个sql文件
    mysqldump -u$MYSQL_USER -p$MYSQL_PWD --host=$HOST $DATABASE > $BACKUP_DIR/$DATE/$DATE.sql
     
    #删除5天前的老的备份
    find $BACKUP_DIR -mtime +5 -name "*.sql" -exec rm -rf {} ;
     
    #解释上面这行命令的含义:
    #find 是找到命令,找到变量BACKUP_DIR目录下 时间(-mtime) 5天前(+5) ,名字是(-name) 以.sql结尾的("*.sql")
    #如果找到了的话(-exec),就执行后面的命令,rm -rf 删除 , {}  就是找到的内容。

    3.设置定时器

    给.sh文件赋予执行权限

    chmod +x ./mysql_backup.sh

    开始设置定时器

    crontab -e

    编写定时任务  每天凌晨2点备份

    0 2 * * * /usr/local/shell/mysql_backup.sh
  • 相关阅读:
    逆向测试设计
    JNLP
    3. 技术专题
    8.2. Angular使用Material控件库
    Spring Boot Actuator
    安装
    apk文件结构及反编译/代码混淆
    Visual Studio中attach进程进行调试
    .NET反编译
    3. 技术专题
  • 原文地址:https://www.cnblogs.com/houss/p/11671599.html
Copyright © 2011-2022 走看看