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. 用户输入格…

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

自适应星空背景个人导航单页 效果图部分源码领取源码下期更新预报 效果图 部分源码 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.题目背景(拓展了解) 汉诺塔问题是一个通过隐式使用递归栈来进行实现的一个经典问题,该问题最早的发明人是法国…

node_相关知识点

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

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

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

Debian12 安装留档@Virtual Box

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

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

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

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

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

【静态分析】在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;相较…

Llama模型家族训练奖励模型Reward Model技术及代码实战(三) 使用 TRL 训练奖励模型

LlaMA 3 系列博客 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;一&#xff09; 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;二&#xff09; 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;三&#xff09; 基于 LlaMA…

闲话 .NET(3):.NET Framework 的缺点

前言 2016 年&#xff0c;微软正式推出 .NET Core 1.0&#xff0c;并在 2019 年全面停止 .NET Framework 的更新。 .NET Core 并不是 .NET Framework 的升级版&#xff0c;而是一个从头开始开发的全新平台&#xff0c;一个跟 .NET Framework 截然不同的开源技术框架。 微软为…

2024第三届AIGC开发者大会圆桌论坛:AI Agent中国落地发展现状及多模态结合具身智能的发展展望

在2024年第三届AIGC开发者大会上&#xff0c;多位业内专家齐聚一堂&#xff0c;共同探讨了AI Agent在中国的落地发展现状以及多模态结合具身智能的发展前景。本次圆桌论坛的嘉宾包括&#xff1a; Fast JP作者于金龙Agent创始人莫西莫必胜作者秦瑞January Agent创始人李晨 多模…

Android NDK系列(一)手动搭建Native Project

使用NDK编写的本地代码具有高性能等特性&#xff0c;在游戏、图形处理等领域有广泛应用&#xff0c;下面介绍如何手动搭建一个纯C版的Android项目&#xff0c;通过该项目可以理解Android的项目结构。 一、创建settings.gradle Android项目是基于Gradle构建的&#xff0c;首先得…

Captura完全免费的电脑录屏软件

一、简介 1、Captura 是一款免费开源的电脑录屏软件&#xff0c;允许用户捕捉电脑屏幕上的任意区域、窗口、甚至是全屏画面&#xff0c;并将这些画面录制为视频文件。这款软件具有多种功能&#xff0c;例如可以设置是否显示鼠标、记录鼠标点击、键盘按键、计时器以及声音等。此…

JVM1.8分代的理论基础和简单测试

你好&#xff0c;我是 shengjk1&#xff0c;多年大厂经验&#xff0c;努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注&#xff01;你会有如下收益&#xff1a; 了解大厂经验拥有和大厂相匹配的技术等 希望看什么&#xff0c;评论或者私信告诉我&#xff01; 文章目录 一…

海外仓系统哪家好?闭坑指南,擦亮眼睛选对系统

可以说现在的海外仓系统市场还是比较杂乱的&#xff0c;各种不同类型&#xff0c;不同收费标准的系统比比皆是&#xff0c;这让很多想引进海外仓系统的企业不知所措&#xff0c;不知道怎么选。 今天就聊一下在选择海外仓系统的时候应该如何考量&#xff0c;才能避免被坑&#…