当前位置: 首页 > news >正文

【笔记】ubuntu 20.04 + mongodb 4.4.14定时增量备份脚本

环境

  • ubuntu 20.04
  • mongodb 4.4.14
  • 还没实际使用(20230922)后续到10月底如果有问题会修改

原理

  • 只会在有新增数据时生成新的备份日期目录
  • 备份恢复时,如果恢复的数据库未删除,则会覆盖数据

准备

准备一个文件夹,用于存放脚本
在这里插入图片描述

增量备份脚本 mongodb_incremental_backup.sh

#!/bin/bash# MongoDB 主节点连接信息
MONGO_HOST="127.0.0.1"
MONGO_PORT="27017"# 备份目录的基础路径
BACKUP_BASE_DIR="/home/kudoxi/temp/mongodb_bakup"# 获取当前日期作为备份子目录名称(格式化为YYYYMMDD)
CURRENT_DATE=$(date +"%Y%m%d")# 定义全量备份和增量备份目录
FULL_BACKUP_DIR="$BACKUP_BASE_DIR/full"
INCREMENTAL_BACKUP_DIR="$BACKUP_BASE_DIR/incremental_$CURRENT_DATE"# 执行全量备份(仅第一次执行)
if [ ! -d "$FULL_BACKUP_DIR" ]; thenmongodump --host $MONGO_HOST --port $MONGO_PORT --out "$FULL_BACKUP_DIR"
else# 执行增量备份mongodump --host $MONGO_HOST --port $MONGO_PORT --out "$INCREMENTAL_BACKUP_DIR" --oplog
fi# 检查备份是否成功
if [ $? -eq 0 ]; thenecho "Backup completed successfully."
elseecho "Backup failed. Please check the log for details."
fi

恢复备份脚本 mongodb_restore_backup.sh

#!/bin/bash# MongoDB 服务器连接信息
MONGO_HOST="127.0.0.1"
MONGO_PORT="27017"# 恢复目标数据库名称
TARGET_DB="info_system"# 恢复目录的基础路径
RESTORE_BASE_DIR="/home/kudoxi/temp/mongodb_bakup"# 恢复日期,假设您要恢复到某一天的状态 默认最新
RESTORE_DATE=$(date +"%Y%m%d")  # 替换为实际日期# 全量备份目录
FULL_BACKUP_DIR="$RESTORE_BASE_DIR/full"# 增量备份目录
INCREMENTAL_BACKUP_DIR="$RESTORE_BASE_DIR/incremental_$RESTORE_DATE"# 恢复全量备份
mongorestore --host $MONGO_HOST --port $MONGO_PORT --db $TARGET_DB "$FULL_BACKUP_DIR"# 恢复每日增量备份
for INCREMENTAL_DIR in "$INCREMENTAL_BACKUP_DIR"/*; domongorestore --host $MONGO_HOST --port $MONGO_PORT --db $TARGET_DB "$INCREMENTAL_DIR"
done# 检查恢复是否成功
if [ $? -eq 0 ]; thenecho "Database restore completed successfully."
elseecho "Database restore failed. Please check the log for details."
fi

备份

把脚本目录放到服务器后

  1. 修改实际备份存放路径
sudo vim mongo_incremental_backup.sh

保存退出
2. 给该路径可写入权限

sudo chmod +x mongo_incremental_backup.sh
  1. 定时增量
    定时设置参考另一篇mysql增量备份

定时文件配置

crontab -e
30 10 * * * /bin/bash /home/kudoxi/temp/mongo_incremental_backup.sh   

恢复

  1. 修改恢复脚本中待恢复数据库名称和备份路径
sudo vim mongodb_restore_backup.sh

在这里插入图片描述

  1. 执行恢复脚本
sudo bash mongodb_restore_backup.sh

相关文章:

【笔记】ubuntu 20.04 + mongodb 4.4.14定时增量备份脚本

环境 ubuntu 20.04mongodb 4.4.14还没实际使用(20230922)后续到10月底如果有问题会修改 原理 只会在有新增数据时生成新的备份日期目录备份恢复时,如果恢复的数据库未删除,则会覆盖数据 准备 准备一个文件夹,用于…...

c++实现的一个定时器实例

/* * author: hjjdebug * date : 2023年 09月 23日 星期六 11:52:29 CST * description: 用std::thread 实现了一个定时器,深刻理解一下定时器是怎样工作的. * 参考Timer.h, Timer.cpp */ $ cat main.cpp #include "Timer.h" #include <unis…...

Python线程和进程

1、深度解析Python线程和进程 一篇文章带你深度解析Python线程和进程 - 知乎使用Python中的线程模块&#xff0c;能够同时运行程序的不同部分&#xff0c;并简化设计。如果你已经入门Python&#xff0c;并且想用线程来提升程序运行速度的话&#xff0c;希望这篇教程会对你有所帮…...

算法 寻找峰值-(二分查找+反向双指针)

牛客网: BM19 题目: 寻找数组峰值&#xff0c;可能多个返回任一个&#xff0c;每个值满足nums[i] ! nums[i 1] 思路: 双指针 left 0, right n-1, 相向而行&#xff0c;取中间位置mid, nums[mid]与nums[mid1]比较&#xff0c;如果nums[mid] < nums[mid1]&#xff0c;说明…...

【数据结构】—交换排序之快速排序究极详解,手把手带你从简单的冒泡排序升级到排序的难点{快速排序}(含C语言实现)

食用指南&#xff1a;本文在有C基础的情况下食用更佳 &#x1f525;这就不得不推荐此专栏了&#xff1a;C语言 ♈️今日夜电波&#xff1a;靴の花火—ヨルシカ 0:28━━━━━━️&#x1f49f;──────── 5:03 …...

【c#-Nuget 包“在此源中不可用”】 Nuget package “Not available in this source“

标题c#-Nuget 包“在此源中不可用”…但 VS 仍然知道它吗&#xff1f; (c# - Nuget package “Not available in this source”… but VS still knows about it?) 背景&#xff1a; 今日从公司svn 上拉取很久很久以前的代码&#xff0c;拉取下来200报错&#xff0c;进一步发…...

【数据结构】二叉树之堆的实现

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;数据结构 &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、二叉树的顺序结构 &#x1f4d2;1.1顺序存储 &#x1f4d2;1.2堆的性质…...

电工-三极管输入输出特性曲线讲解

三极管特性曲线是反映三极管各电极电压和电流之间相互关系的曲线&#xff0c;是用来描述晶体三极管工作特性曲线&#xff0c;常用的特性曲线有输入特性曲线和输出特性曲线。这里以下图所示的共发射极电路来分析三极管的特性曲线。 输入特性曲线 该曲线表示当e极与c极之间的电…...

深入解析容器与虚拟化:技术、对比与生态

深入解析容器与虚拟化&#xff1a;技术、对比与生态 文章目录 深入解析容器与虚拟化&#xff1a;技术、对比与生态容器和虚拟化的基本概念和原理容器的定义和特点虚拟化的定义和特点 容器使用场景容器和虚拟机的对比虚拟化技术的四个特点容器实现虚拟化的原理常见容器引擎和容器…...

制作游戏demo的心得

制作这个游戏demo出来的心得 https://www.bilibili.com/video/BV1cF411m7Dh/ 制作游戏demo的心得 制作游戏demo&#xff0c;主要是为了表现自己的技术&#xff0c;那就一门心思想着如何提高表现力就行了&#xff0c;在整体的画面渲染风格方面或许没有什么可选择的&#xff0c;…...

Web Tour Server窗口闪现

1.打开该文件所在位置 2.右击选择编辑&#xff0c;在最后一行加上pause&#xff0c;保存后重新打开Server窗口 3.重新打开后&#xff0c;若出现以下情况&#xff1a; 以管理员身份打开cmd命令行&#xff0c;输入命令netstat -aon|findstr “1080”&#xff0c;查看1080端口占用…...

Linux下的基本指令

目录 01. ls 指令 02. pwd命令 03. cd 指令 04. touch指令 05.mkdir指令&#xff08;重要&#xff09;&#xff1a; 06.rmdir指令 && rm 指令&#xff08;重要&#xff09;&#xff1a; 07.man指令&#xff08;重要&#xff09;&#xff1a; 08mv指令&#xff…...

随机数生成器代码HTML5

代码如下 <!DOCTYPE html> <html> <head> <title>随机数生成器</title> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <style> body { text-align: center; bac…...

正确理解redux Toolkits中createSlice的action.payload

使用redux Toolkits中的createSlice编写extraReducers经常看到使用action.payload来更新state状态值&#xff1a; 那么action.payload指的到底是什么&#xff1f; 让我们看看action的定义部分&#xff1a; 注意&#xff1a; action.payload不是上面ajax请求的返回内容&#x…...

YOLOv8快速复现 官网版本 ultralytics

YOLOV8环境安装教程.&#xff1a;https://www.bilibili.com/video/BV1dG4y1c7dH/ YOLOV8保姆级教学视频:https://www.bilibili.com/video/BV1qd4y1L7aX/ b站视频&#xff1a;https://www.bilibili.com/video/BV12p4y1c7UY/ 1 平台搭建YOLOv8 平台&#xff1a;https://www.a…...

Haproxy搭建 Web 群集实现负载均衡

目录 1 Haproxy 1.1 HAProxy的主要特性 1.2 HAProxy负载均衡策略 1.3 LVS、Nginx、HAproxy的区别 2 Haproxy搭建 Web 群集 2.1 haproxy 服务器部署 2.1.1 关闭防火墙 2.1.2 内核配置&#xff08;实验环境可有可无&#xff09; ​2.1.3 安装 Haproxy 2.1.4 Haproxy服务…...

Tessy 5.0.4

Tessy 5.0.4 Linux 2692407267qq.com&#xff0c;更多内容请见http://user.qzone.qq.com/2692407267/...

mybatis-plus根据指定条件批量更新

1.service实现类中 比如我这里只针对UserEntity&#xff0c;在UserServiceImpl下&#xff08;该实现类是继承了mybatis-plus的ServiceImpl的&#xff09;新增如下代码&#xff1a; public boolean updateBatchByQueryWrapper(Collection<UserEntity> entityList, Funct…...

虹科方案 | LIN/CAN总线汽车零部件测试方案

文章目录 摘要一、汽车零部件测试的重要性&#xff1f;二、虹科的测试仿真工具如何在汽车零部件测试展露头角&#xff1f;三、应用场景**应用场景1&#xff1a;方向盘开关的功能测试****应用场景2&#xff1a;各类型电机的控制测试****应用场景3&#xff1a;RGB氛围灯的功能测试…...

[solidity]合约调用合约

先写一个简单的合约将其部署&#xff0c;部署后的合约地址为&#xff1a;0xd9145CCE52D386f254917e481eB44e9943F39138 // SPDX-License-Identifier: MIT pragma solidity ^0.8.0;contract A{string myname;function setName(string memory _name) public{myname_name;}functi…...

5步快速解锁付费内容:bypass-paywalls-chrome-clean终极指南 [特殊字符]

5步快速解锁付费内容&#xff1a;bypass-paywalls-chrome-clean终极指南 &#x1f680; 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在信息爆炸的时代&#xff0c;你是否经常遇到优…...

无代码爬虫方案:OpenClaw调度Qwen3.5-9B解析动态网页数据

无代码爬虫方案&#xff1a;OpenClaw调度Qwen3.5-9B解析动态网页数据 1. 为什么需要无代码爬虫&#xff1f; 作为一个经常需要从网页抓取数据的技术博主&#xff0c;我经历过太多抓取数据的痛苦时刻。传统爬虫开发需要处理反爬机制、解析动态加载内容、维护复杂的XPath或CSS选…...

Python多进程+ZeroMQ+内存映射=真无锁?资深架构师用17个生产事故告诉你为什么92%的“去GIL”方案在高并发下静默失败

第一章&#xff1a;Python无锁GIL环境下的并发模型避坑指南Python 的全局解释器锁&#xff08;GIL&#xff09;长期被误认为是“无锁”环境&#xff0c;实则恰恰相反——GIL 是 CPython 解释器中一把严格的互斥锁&#xff0c;它确保任意时刻仅有一个线程执行 Python 字节码。所…...

三步解锁QQ空间历史说说备份:数据留存与管理实用指南

三步解锁QQ空间历史说说备份&#xff1a;数据留存与管理实用指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory QQ空间数据备份是许多用户保存青春记忆和重要记录的需求。GetQzonehist…...

Web开发中前端与Node服务中的信息安全与解决办法

Web开发中前端与Node服务中的信息安全与解决办法 input限制特殊字符和长度 漏洞描述&#xff1a; 永远不要相信用户输入的信息&#xff0c;如常规的注入脚本通过input输入之后被页面执行 整改办法 方法1&#xff1a;对于vue项目中ElementUI的el-input 和 原生input <el-in…...

OpenDroneMap实战指南:从航拍图像到三维模型的完整技术解析

OpenDroneMap实战指南&#xff1a;从航拍图像到三维模型的完整技术解析 【免费下载链接】ODM A command line toolkit to generate maps, point clouds, 3D models and DEMs from drone, balloon or kite images. &#x1f4f7; 项目地址: https://gitcode.com/gh_mirrors/od…...

紧固件包装机有哪些类型?自动化包装设备全解析_FES 2026上海紧固件展

2026第十六届上海紧固件专业展&#xff08;Fastener Expo Shanghai 2026&#xff09;将于6月24日至26日在国家会展中心&#xff08;上海&#xff09;举行。作为紧固件行业的重要展示窗口&#xff0c;本届展会将重点呈现制造端与后道环节的智能化升级&#xff0c;其中&#xff0…...

告别依赖地狱:用Buildroot一键搞定OpenCV 4.x在ARM板上的交叉编译环境

告别依赖地狱&#xff1a;用Buildroot一键搞定OpenCV 4.x在ARM板上的交叉编译环境 在嵌入式视觉应用开发中&#xff0c;OpenCV几乎是不可或缺的计算机视觉库。但当开发者尝试将OpenCV部署到ARM架构的嵌入式设备时&#xff0c;往往会陷入依赖库编译的泥潭——FFmpeg、libjpeg、l…...

Nano Banana API 来了:不到半价享官方同款品质,仅需约 ¥0.10/张!

最近被谷歌新发布的 Nano Banana&#xff08;Gemini 2.5 Flash Image&#xff09;图像生成模型 霸屏了。 从手办秒变真人级 Cosplay&#xff0c;到一键统一多图风格&#xff0c;从个性化头像到产品概念设计&#xff0c;甚至连静态画作都能一键生成电影级动态分镜——这波 AI 生…...

FJSP:蛇鹫优化算法(SBOA)求解柔性作业车间调度问题(FJSP),提供MATLAB代码

FJSP&#xff1a;蛇鹫优化算法&#xff08;SBOA&#xff09;求解柔性作业车间调度问题&#xff08;FJSP&#xff09;&#xff0c;提供MATLAB代码当车间调度遇上非洲大草原的蛇鹄&#xff0c;会碰撞出什么样的火花&#xff1f;今天咱们用MATLAB实现一种新颖的群智能算法——蛇鹄…...