【笔记】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
备份
把脚本目录放到服务器后
- 修改实际备份存放路径
sudo vim mongo_incremental_backup.sh
保存退出
2. 给该路径可写入权限
sudo chmod +x mongo_incremental_backup.sh
- 定时增量
定时设置参考另一篇mysql增量备份
定时文件配置
crontab -e
30 10 * * * /bin/bash /home/kudoxi/temp/mongo_incremental_backup.sh
恢复
- 修改恢复脚本中待恢复数据库名称和备份路径
sudo vim mongodb_restore_backup.sh
- 执行恢复脚本
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中的线程模块,能够同时运行程序的不同部分,并简化设计。如果你已经入门Python,并且想用线程来提升程序运行速度的话,希望这篇教程会对你有所帮…...
算法 寻找峰值-(二分查找+反向双指针)
牛客网: BM19 题目: 寻找数组峰值,可能多个返回任一个,每个值满足nums[i] ! nums[i 1] 思路: 双指针 left 0, right n-1, 相向而行,取中间位置mid, nums[mid]与nums[mid1]比较,如果nums[mid] < nums[mid1],说明…...
【数据结构】—交换排序之快速排序究极详解,手把手带你从简单的冒泡排序升级到排序的难点{快速排序}(含C语言实现)
食用指南:本文在有C基础的情况下食用更佳 🔥这就不得不推荐此专栏了:C语言 ♈️今日夜电波:靴の花火—ヨルシカ 0:28━━━━━━️💟──────── 5:03 …...
【c#-Nuget 包“在此源中不可用”】 Nuget package “Not available in this source“
标题c#-Nuget 包“在此源中不可用”…但 VS 仍然知道它吗? (c# - Nuget package “Not available in this source”… but VS still knows about it?) 背景: 今日从公司svn 上拉取很久很久以前的代码,拉取下来200报错,进一步发…...
【数据结构】二叉树之堆的实现
🔥博客主页:小王又困了 📚系列专栏:数据结构 🌟人之为学,不日近则日退 ❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、二叉树的顺序结构 📒1.1顺序存储 📒1.2堆的性质…...
电工-三极管输入输出特性曲线讲解
三极管特性曲线是反映三极管各电极电压和电流之间相互关系的曲线,是用来描述晶体三极管工作特性曲线,常用的特性曲线有输入特性曲线和输出特性曲线。这里以下图所示的共发射极电路来分析三极管的特性曲线。 输入特性曲线 该曲线表示当e极与c极之间的电…...
深入解析容器与虚拟化:技术、对比与生态
深入解析容器与虚拟化:技术、对比与生态 文章目录 深入解析容器与虚拟化:技术、对比与生态容器和虚拟化的基本概念和原理容器的定义和特点虚拟化的定义和特点 容器使用场景容器和虚拟机的对比虚拟化技术的四个特点容器实现虚拟化的原理常见容器引擎和容器…...
制作游戏demo的心得
制作这个游戏demo出来的心得 https://www.bilibili.com/video/BV1cF411m7Dh/ 制作游戏demo的心得 制作游戏demo,主要是为了表现自己的技术,那就一门心思想着如何提高表现力就行了,在整体的画面渲染风格方面或许没有什么可选择的,…...
Web Tour Server窗口闪现
1.打开该文件所在位置 2.右击选择编辑,在最后一行加上pause,保存后重新打开Server窗口 3.重新打开后,若出现以下情况: 以管理员身份打开cmd命令行,输入命令netstat -aon|findstr “1080”,查看1080端口占用…...
Linux下的基本指令
目录 01. ls 指令 02. pwd命令 03. cd 指令 04. touch指令 05.mkdir指令(重要): 06.rmdir指令 && rm 指令(重要): 07.man指令(重要): 08mv指令ÿ…...
随机数生成器代码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状态值: 那么action.payload指的到底是什么? 让我们看看action的定义部分: 注意: action.payload不是上面ajax请求的返回内容&#x…...
YOLOv8快速复现 官网版本 ultralytics
YOLOV8环境安装教程.:https://www.bilibili.com/video/BV1dG4y1c7dH/ YOLOV8保姆级教学视频:https://www.bilibili.com/video/BV1qd4y1L7aX/ b站视频:https://www.bilibili.com/video/BV12p4y1c7UY/ 1 平台搭建YOLOv8 平台: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 内核配置(实验环境可有可无) 2.1.3 安装 Haproxy 2.1.4 Haproxy服务…...
Tessy 5.0.4
Tessy 5.0.4 Linux 2692407267qq.com,更多内容请见http://user.qzone.qq.com/2692407267/...
mybatis-plus根据指定条件批量更新
1.service实现类中 比如我这里只针对UserEntity,在UserServiceImpl下(该实现类是继承了mybatis-plus的ServiceImpl的)新增如下代码: public boolean updateBatchByQueryWrapper(Collection<UserEntity> entityList, Funct…...
虹科方案 | LIN/CAN总线汽车零部件测试方案
文章目录 摘要一、汽车零部件测试的重要性?二、虹科的测试仿真工具如何在汽车零部件测试展露头角?三、应用场景**应用场景1:方向盘开关的功能测试****应用场景2:各类型电机的控制测试****应用场景3:RGB氛围灯的功能测试…...
[solidity]合约调用合约
先写一个简单的合约将其部署,部署后的合约地址为:0xd9145CCE52D386f254917e481eB44e9943F39138 // SPDX-License-Identifier: MIT pragma solidity ^0.8.0;contract A{string myname;function setName(string memory _name) public{myname_name;}functi…...
Vulnhub系列靶机---JANGOW 1.0.1
文章目录 网卡配置信息收集主机发现端口扫描 漏洞利用反弹Shell提权 靶机文档:JANGOW 1.0.1 下载地址:Download (Mirror) 难易程度:. 网卡配置 水果味儿 信息收集 主机发现 端口扫描 访问80端口 点击site目录 点击页面上方的一个选项&…...
肖sir__项目环境之全流程__005
一、测试流程(h模型) 1、需求文档(产品) 需求文档(软件需求规格说明书srs) (1)如何分析需求 a、显示需求(主流程、功能,业务) b、隐性需求&#x…...
搜狗输入法下键翻页
搜狗输入法下键翻页 从官网下载 搜狗输入法智慧版关闭超级候选关闭候选...
C#多线程
一、多线程实现方式 1. 使⽤Thread类: System.Threading.Thread 类是C#中最基本的多线程编程⼯具。 2. 使⽤ThreadPool: 线程池是⼀个管理和重⽤线程的机制,它可以在应⽤程序中创建和使 ⽤多个线程,⽽⽆需显式地管理线程的…...
Unity 编辑器常用方法
unity编辑器开发 脚本注解1. RuntimeInitializeOnLoadMethod2. ColorUsage3. Header4. SerializeField5. HideInInspector6. Space7. Range8. Multiline9.[RequireComponent(typeof())]10.HelpURL 右键菜单注解1. CreateAssetMenu - 针对ScriptableObject 菜单栏注解1. MenuIt…...
21 mysql ref 查询
前言 这里主要是 探究一下 explain $sql 中各个 type 诸如 const, ref, range, index, all 的查询的影响, 以及一个初步的效率的判断 这里会调试源码来看一下 各个类型的查询 需要 lookUp 的记录 以及 相关的差异 此系列文章建议从 mysql const 查询 开始看 测试表结构…...
启山智软/一款包含主流商城类型的一款电商中台系统100%开源
文章目录 介绍一、Smart Shop JAVA 微服务电商中台优势二、电商中台包含那些主流商城模式1.S2B2C供应链商城2.B2B2C多商户商城3.B2C单商户商城4.O2O外卖配送商城5.社区团购商城 6.演示地址总结 介绍 想要了解代码规范,学习商城解决方案,点击下方官网链接…...
【C语言】指针的进阶(四)—— 企业笔试题解析
笔试题1: int main() {int a[5] { 1, 2, 3, 4, 5 };int* ptr (int*)(&a 1);printf("%d,%d", *(a 1), *(ptr - 1));return 0; } 【答案】在x86环境下运行 【解析】 &a是取出整个数组的地址,&a就表示整个数组,因此…...
博弈论——连续产量古诺模型
连续产量古诺模型 连续产量古诺模型是博弈论中非常经典的模型,以两厂商连续产量古诺博弈为例: 1、模型建立 Player:两个供应相同产品的厂商 产量:厂商1的产量为q1,厂商2的产量为q2,市场总供给为Qq1q2。…...
ROS2 驱动思岚G4雷达(ydlidar)- Rviz显示
记录G4雷达的配置 系统环境为:Ubuntu22.04 配置步骤 1、安装雷达SDK 2、构建 G4 雷达 ROS2 项目工程文件 3、使用Rviz可视化界面显示 1、安装雷达SDK 1.1 安装CMake YDLidar SDK需要CMake 2.8.2作为依赖项 Ubuntu 18.04或者Ubuntu 22.04 sudo apt install cmak…...
wordpress图片加载快/实训百度搜索引擎的总结
题目要求:根据《福建省电网销售电价表》,居民生活用电按3个梯度收费:月用电量150千瓦时及以下部分,每千瓦时0.4463元,151—400千瓦时部分为0.4663元,401千瓦时以上部分为0.5663元,请编写程序&am…...
上海特种作业操作证查询/seo运营是什么意思
一、Widget设计步骤 需要修改三个XML,一个class:1.第一个xml是布局XML文件(如:main.xml),是这个widget的。一般来说如果用这个部件显示时间,那就只在这个布局XML中声明一个textview就OK了。2.第二个xml是widget_pro…...
贵州省兴义市建设局网站/网络推广的工作好做吗
前言 当代码中出现多重if-else语句或者switch语句时。弊端之一:如果这样的代码出现在多处,那么一旦出现需求变更,就需要把所有地方的if-else或者switch代码进行更改,要是遗漏了某一处,那么程序就会出错。弊端之二&…...
网站建设及优化 赣icp/免费网站的平台
修改接收端的WCF config文件,注意,如果server端接收request超长,则修改server端config,如果是client 接收response超长,则修改client端,建议两边都修改,保持一致 <bindings> <wsHttpBinding> <binding name"…...
网站开发案例/外链查询
1. 实现方法 处理器有一个24位的系统定时器,SysTick。该定时器向下计数。计数到0后,重新从STK_LOAD寄存器中重载计数值,继续向下计数。使用SysTick的优点是,不用占用中断和定时器资源。 2. 相关寄存器 STK_CTRL: 0…...
移动端高端网站开发/网络推广协议合同范本
这是一道比较经典的题目。我先是在百度的在线笔试中遇到,然后发现剑指Offer上有原题。当然题目并不完全一样不过大致相同。 百度笔试是给你两个根节点判断第棵树是不是第一棵树的子树。剑指Offer是问你第二颗数是不是第一棵树的子结构(也就是说可是是第一…...