zoukankan      html  css  js  c++  java
  • Linux数据备份与恢复

    一.检查是否安装了本地任务 Crontab

    systemctl status crond 

    二.如果没有就安装呀

    yum install -y vixie-cron

    yum install -y crontabs

    然后启动: systemctl start crond.service

    三.crontab命令结构为 时间+动作,其时间有分、时、日、月、周,操作符包括*取值范围内所有数字,/每过多少个数字,-从x到z,散列数字

    例如:

    1. 在 12:01 a.m 运行,即每天凌晨过一分钟。这是一个恰当的进行备份的时间,因为此时系统负载不大。

    1 0 * * * /root/bin/backup.sh

    2. 每个工作日(Mon – Fri) 11:59 p.m 都进行备份作业。

    59 11 * * 1,2,3,4,5 /root/bin/backup.sh

    下面例子与上面的例子效果一样:

    59 11 * * 1-5 /root/bin/backup.sh

    3. 每5分钟运行一次命令

    */5 * * * * /root/bin/check-status.sh

    4. 每个月的第一天 1:10 p.m 运行

    10 13 1 * * /root/bin/full-backup.sh

    5. 每个工作日 11 p.m 运行。

    0 23 * * 1-5 /root/bin/incremental-backup.sh


    三.利用crontab备份储存位置

    MYSQL备份数据库需要使用mysql提供的备份语句,如果单纯COPY数据库表文件需要对数据库进行分离操作,所以通常会直接使用数据库提供的备份语句。创造数据库备份脚本

    cd /usr/local

    mkdir xym

    touch sqlAutoBack.sh

    vi sqlAutoBack.sh

    并在sqlAutoBack中编写如下脚本

    #!/bin/sh

    #Database info

    DB_USER="root"

    DB_PASS="root"

    DB_HOST="localhost"

    DB_NAME="dailian"

    #Other vars

    BIN_DIR="user/bin"   #the mysql bin path

    BCK_DIR="/mnt/mysqlBackup"  #the backup file directory

    DATE=`date +%F`

    #备份数据库

    $BIN_DIR/mysqldump --opt -u $DB_USER -p $DB_PASS -h #$DB_HOST $ DB_NAME > $BCK_DIR/db_$DATE.sql

    以上编写保存后修改文件读写权限,通过crontab -e 编写定时任务执行SQL备份脚本

    00 05 * * * /bin/sh/usr/local/xym/sqlAutoBak.sh

    恢复数据库:

    mysql -u root -p testDB < /mnt/mysqlBackup/db_20200602.sql




  • 相关阅读:
    DotNetCore + Sonar + Coverlet 代码覆盖率检查
    Docker + Sonarqube 环境搭建
    使用cmd进行tfs的签入
    Swashbuckle.AspNetCore(v2.5.0)使用小记
    Ocelot(v7.0.6)使用小记
    layui.formSelects.render(); 需要先执行
    .net core编译时设置不自动生成“netcoreapp3.0”目录
    C# List引用类型的克隆
    HTTP Error 502.5
    GPS服务端(上)-Socket服务端(golang)
  • 原文地址:https://www.cnblogs.com/kyooo/p/13231799.html
Copyright © 2011-2022 走看看