mongodb数据库备份到远程机器

一、背景

生产环境的mongodb数据库是直接购买阿里云的云数据库,但是在公司研发环境,我们是自己手动部署的。开发和测试的数据当然没有生产环境那么重要,但备份也是必要的,只不过容忍一定的数据丢失。

二、备份脚本

  • vi /etc/crontab
# 每天的凌晨1点执行备份
0 1 * * *  root /usr/bin/bash /data/mongo_bak.sh >/dev/null 2>&1
  • vi /data/mongo_bak.sh
#!/bin/bash
#
d=$(date -d "-1 day" "+%F")# 先把备份数据库保存在本地目录/mongo_bak/
[ -d /mongo_bak/$d ] || mkdir -p /mongo_bak/$d
mongodump --port 3717 -u "{用户名}" -p "{密码}" --authenticationDatabase "admin" -o /mongo_bak/$d/ >/dev/null 2>&1# 压缩
cd /mongo_bak && tar -czf /mongo_bak/$d.tar.gz $d && cd# 将备份文件复到远端目录/data/mongo_bak/bak/
scp /mongo_bak/$d.tar.gz mongo_bak@192.168.8.15:/data/mongo_bak/bak/ >/dev/null 2>&1#删除源目录中的备份文件
rm -rf /mongo_bak/*#远端保留7天的备份
ssh mongo_bak@192.168.8.15 "find /data/mongo_bak/bak/ -mtime +7 |xargs rm -rf"
  • 192.168.8.15 是保存数据库备份的远程机器
  • /data/mongo_bak/bak/是远程机器的备份目录
  • /mongo_bak/是本地机器的备份目录

三、ssh免密登录

1、生成ssh密钥对

[root@mongodb1 mongo_bak]# ssh-keygen -t rsa -C "mongo" -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:xouv9rIur/REHf88TroIiiupY+uidqHZFPBfUAwftc0 mongo
The key's randomart image is:
+---[RSA 4096]----+
|     .+o..       |
| .   .... +      |
|  o   .... E     |
|   o   + o       |
|    o o S .      |
|   o o o . o     |
| .= o + .   =    |
|== =.+oo . + .   |
|X==.o**=+ o..    |
+----[SHA256]-----+[root@mongodb1 mongo_bak]# ll ~/.ssh/
total 12
-rw------- 1 root root  381 Oct 11  2023 authorized_keys
-rw------- 1 root root 3243 May 28 16:16 id_rsa
-rw-r--r-- 1 root root  731 May 28 16:16 id_rsa.pub

在这里插入图片描述

2、发送ssh公钥至远程机器

[root@mongodb1 mongo_bak]# cat ~/.ssh/id_rsa.pub | ssh root@192.168.8.15 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys | chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"The authenticity of host '192.168.8.15 (192.168.8.15)' can't be established.
ECDSA key fingerprint is SHA256:kq7eeYGHgUUw1HrymOBVR8amY0Krpv4RZFpBQUMHh2M.
ECDSA key fingerprint is MD5:9b:7d:49:5c:61:18:61:58:23:85:63:46:58:94:f1:23.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.8.15' (ECDSA) to the list of known hosts.
root@192.168.8.15's password: 

执行该命令后,最后会提示你输入远程机器的root用户对应的登录密码。

在这里插入图片描述

3、登录远程机器,查看authorized_keys

root@EOS6:~/.ssh# vi authorized_keys

在这里插入图片描述

4、本机验证

在这里插入图片描述
ssh root@192.168.8.15 本地不用输入密码即可登录远程机器192.168.8.15。

四、验证

1、本地备份

在备份的过程中,会在目录/mongo_bak生成如下文件。

在这里插入图片描述

[root@mongodb1 mongo_bak]# ll -h
total 2.0G
drwxr-xr-x 17 root root 4.0K May 28 16:32 2024-05-27
-rw-r--r--  1 root root 1.9G May 28 16:46 2024-05-27.tar.gz
[root@mongodb1 mongo_bak]# pwd
/mongo_bak

2、远程机器

  • 备份执行前
    在这里插入图片描述
root@EOS6:/data/mongo_bak/bak# ll
总用量 8
drwxr-xr-x 2 root root 4096 528 16:33 ./
drwxr-xr-x 3 root root 4096 528 16:33 ../
  • 备份执行后
    在这里插入图片描述
root@EOS6:/data/mongo_bak/bak# ll -h
总用量 3.0G
drwxr-xr-x 2 root root 4.0K 528 17:11 ./
drwxr-xr-x 3 root root 4.0K 528 16:33 ../
-rw-r--r-- 1 root root 3.0G 528 17:12 2024-05-27.tar.gz

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/843221.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringCloud Alibaba Nacos分类配置--多方案配置隔离

文章目录 Nacos 分类配置(实现配置隔离)1.DataID 方案需求分析/图解配置实现测试 2.Group 方案需求分析/图解配置实现修改application.yml修改bootstrap.yml测试 3.Namespace 方案需求分析/图解配置实现修改application.yml修改bootstrap.yml测试 Namespace/Group/Data ID 关系…

MySQL连表查询练习

– 34. 查询所有员工的姓名和部门名称,没有部门的员工不需要展示 SELECTe.NAME 员工姓名,d.NAME 部门名称 FROMt_emp eINNER JOIN t_dept d ON e.dept_id d.id;– 35. 查询所有员工的姓名和部门名称,没有部门的员工展示BOSS SELECTe.NAME 员工姓名,i…

揭秘:如何使用Python统计女友生日还剩几天?

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言:为何需要统计生日天数? 二、需求分析与准备 1. 用户输入格…

智慧景区ar导览小程序系统开发搭建

开发智慧景区AR导览小程序系统需要以下几个步骤: 1. 确定需求和功能:了解景区需求,包括AR导览的区域、设备、应用场景等,并根据需求制定功能需求清单。 2. 选择合适的AR技术:智慧景区AR导览需要利用AR技术实现实景与…

Hudi Flink MOR 学习总结

前言 之前很少用MOR表,现在来学习总结一下。首先总结一下 compaction 遇到的问题。 版本 Flink 1.15.4Hudi 0.13.0表类型 COW 和 MOR COW:COW COPY_ON_WRITE 写时复制,写性能相比于MOR表差一点,因为每次写数据都会合并文件,但是能及时读取到最新的表数据。数据文件只有…

自适应星空背景个人导航单页(附带源码)

自适应星空背景个人导航单页 效果图部分源码领取源码下期更新预报 效果图 部分源码 function Star(id, x, y) {this.id id;this.x x;this.y y;this.r Math.floor(Math.random() * 2) 1;var alpha (Math.floor(Math.random() * 10) 1) / 10 / 2;this.color "rgba(…

shell脚本的基础应用

规范脚本的构成 #!/bin/bash # 注释信息 可执行的语句 执行脚本的方法 有1.添加x权限 ,绝对路经,或者相对路径2. 使用解释器 不需加x,root...bash...bash..echo 3,用source, 开机root ...bash ...echo bash -x /opt/test01.sh &#xff…

【算法】递归、搜索与回溯——汉诺塔

题解:汉诺塔(递归、搜索与回溯算法) 目录 1.题目2.题目背景(拓展了解)3.题解4.参考代码5.细节6.总结 1.题目 题目链接:LINK 2.题目背景(拓展了解) 汉诺塔问题是一个通过隐式使用递归栈来进行实现的一个经典问题,该问题最早的发明人是法国…

AI新时代的对决:OpenAI GPT-4o与Google Astra的较量

随着人工智能技术的飞速发展,两大巨头OpenAI和Google在近期分别推出了他们引人瞩目的新产品——GPT-4o和Project Astra。这场看似悄然而至,实则全球瞩目的竞赛,无疑预示着AI领域的重大突破和未来智能助理的新格局。 OpenAI的GPT-4o自宣布以来…

node_相关知识点

Node.js采用谷歌的V8引擎,是一个服务器端的、非阻断式I/O的、事件驱动的JavaScript运行环境,可优化应用程序的传输量和规模。传统服务器多线程(一个请求一个线程)易阻塞。 一、线程、进程: 进程:进程负责…

【从零开始学习RabbitMQ | 第二篇】如何确保MQ的可靠性和消费者可靠性

目录 前言: MQ可靠性: 数据持久化: Lazy Queue: 消费者可靠性: 消费者确认机制: 消费失败处理: MQ保证幂等性: 方法一: 总结: 前言: …

如何在Java中实现单例模式

一、引言 单例模式(Singleton Pattern)是Java中最常用的设计模式之一。它的主要目的是确保一个类只有一个实例,并提供一个全局访问点。在许多场景下,如配置管理、线程池、数据库连接池等,单例模式都能发挥重要作用。 …

Debian12 安装留档@Virtual Box

在学蜜罐系统的时候,T-Pot 需要Debian,于是安装Debian12 下载安装光盘 先去中科大下载了12的安装光盘,然后在VirtualBox中创建一个新虚拟机,将安装光盘挂载上。 安装光盘下载地址:https://mirrors.ustc.edu.cn/debi…

【NumPy】全面解析NumPy的bitwise_and函数:高效按位与操作指南

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

算法训练 | 二叉树Part7 | 530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数

目录 530.二叉搜索树的最小绝对差 数组法 双指针法 ⭐ 迭代法 501.二叉搜索树中的众数 双指针法 迭代法 530.二叉搜索树的最小绝对差 题目链接:530. 二叉搜索树的最小绝对差 - 力扣(LeetCode) 文章讲解:代码随想录 数组…

三生随记——毛笔之咒

在一个被群山环抱的古老村落里,村民们过着平静而安宁的生活。然而,这个村落里隐藏着一个不为人知的秘密——一支传说中的毛笔。 这支毛笔的来历已无从考证,只知它世代相传,被村里的长者小心翼翼地收藏在祠堂的密室之中。毛笔的笔杆…

抖音小程序如何生成二维码

1.页面结构 <image src{{imgUrl}}></image>2.代码结构 onLoad(options) {if (options.param) {var qrCode 13246897451257 //传入生成二维码的字符串this.generateQRCode(qrCode);}},//调起第三方库qrCodegenerateQRCode(text) {//调用了qrCode里面的apiconst api…

【算法】Angelic Jelly天使果冻

✨题目链接&#xff1a; 天使果冻 ✨题目描述 Angelic Jelly 有 n 个果冻排成一排。第 i 个果冻的美味度是 ai。 天使非常喜欢吃果冻&#xff0c;但她想把最好吃的果冻留到最后收藏。天使想知道前 x 个果冻中&#xff0c;美味度第二大的果冻有多少美味度&#xff1f; 一共有 q…

【静态分析】在springboot使用太阿(Tai-e)02

参考&#xff1a;使用太阿&#xff08;Tai-e&#xff09;进行静态代码安全分析&#xff08;spring-boot篇二&#xff09; - 先知社区 本文章使用的被分析代码为GitHub - JoyChou93/java-sec-code: Java web common vulnerabilities and security code which is base on springb…

本地部署 MiniCPM-Llama3-V 2.5

本地部署 MiniCPM-Llama3-V 2.5 0. 引言1. 性能评估2. 典型示例3. 本地部署4. 运行 WebUI Demo5. vLLM 部署 0. 引言 MiniCPM-Llama3-V 2.5 是 MiniCPM-V 系列的最新版本模型&#xff0c;基于 SigLip-400M 和 Llama3-8B-Instruct 构建&#xff0c;共 8B 参数量&#xff0c;相较…