zoukankan      html  css  js  c++  java
  • liunx定时备份mongo数据库并实现自动删除N天前备份

    1、脚本文件

    #!/bin/sh
    # dump 命令执行路径,根据mongodb安装路径而定
    #!/bin/sh
    # dump 命令执行路径,根据mongodb安装路径而定
    DUMP=/opt/mongodb-3.2.10/bin/mongodump
    # 临时备份路径
    OUT_DIR=/mnt/data/mongodb_bak/mongodb_bak_tmp
    # 压缩后的备份存放路径
    TAR_DIR=/mnt/data/mongodb_bak/mongodb_bak_list
    # 当前系统时间
    DATE=`date +%Y-%m-%d-%H:%M:%S`
    # 备份数据库
    DB=10_db
    # 数据库地址
    HOST=10.1.11.10:30000
    # 删除7天前的备份,即只保留近 7 天的备份,按实际需求更改
    DAYS=7
    # 最终保存的数据库备份文件
    TAR_BAK="mongod_bak_$DATE.tar.gz"
    cd $OUT_DIR
    rm -rf $OUT_DIR/*
    mkdir -p $OUT_DIR/$DATE
    $DUMP -h $HOST -d $DB -o $OUT_DIR/$DATE
    tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE
    find $TAR_DIR/ -mtime +$DAYS -delete
    exit

    2、创建以上文件中的目录并赋予脚本执行权限:

    chmod +x mongodb_bak.sh

    3、添加计划任务

    进入编辑任务界面:crontab -e

    配置定时任务:30 1 * * * /opt/mongobk.sh 每天一点30分备份数据库

    基本格式 :
    * * * * * command
    分 时 日 月 周 命令

    第1列表示分钟1~59 每分钟用*或者 */1表示
    第2列表示小时1~23(0表示0点)
    第3列表示日期1~31
    第4列表示月份1~12
    第5列标识号星期0~6(0表示星期天)
    第6列要运行的命令

    4、计划任务说明:

    cron 各项的描述

    以下是 crontab 文件的格式:

    {minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script} 
    o minute: 区间为 0 – 59 
    o hour: 区间为0 – 23 
    o day-of-month: 区间为0 – 31 
    o month: 区间为1 – 12. 1 是1月. 12是12月. 
    o Day-of-week: 区间为0 – 7. 周日可以是0或7.

    Crontab 示例

    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 选项

    以下是 crontab 的有效选项:

    o crontab –e : 修改 crontab 文件. 如果文件不存在会自动创建。 
    o crontab –l : 显示 crontab 文件。 
    o crontab -r : 删除 crontab 文件。
    o crontab -ir : 删除 crontab 文件前提醒用户。

  • 相关阅读:
    记录 vue 中使用 SVG 渐变填充遇到过的坑
    关于map some filter every等遍历的一些临时记忆
    Blob文件处理
    电子签名 VUE加canvas实现 移动端和PC实现
    js导出excell表
    video
    移植QT5.6到嵌入式开发板(史上最详细的QT移植教程)
    Ubuntu16.04打开Qt显示/home/user/.config/QtProject/qtcreator/qtversion.xml : Permission denied
    哨兵2号影像数据获取以及处理流程
    Sentinel-2 哨兵二号数据下载及处理教程
  • 原文地址:https://www.cnblogs.com/liangblog/p/11724878.html
Copyright © 2011-2022 走看看