千家信息网

Linux中MongoDB实现远程自动备份的示例

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章给大家分享的是有关Linux中MongoDB实现远程自动备份的示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。若备份了,为了保险起见,备份与库就不放在同一台服务器
千家信息网最后更新 2026年11月03日Linux中MongoDB实现远程自动备份的示例

这篇文章给大家分享的是有关Linux中MongoDB实现远程自动备份的示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

若备份了,为了保险起见,备份与库就不放在同一台服务器上了,于是向运维申请了一台服务器,同时安装好mongo。

安装完之后,首先测试下是否可以远程访问目标mongodb,到安装好mongo的bin目录下

./mongo 10.100.1.101:27017 #目标mongo的ip及端口

然后创建些必要的目录,比如备份文件放在哪个目录之类的。

接下来测试下利用mongodump来备份数据库:

./bin/mongodump --host test/10.100.1.101:27017,10.100.1.102:27017 -d testdb --out /data/temp# test为副本集名称# 10.100.1.101:27017,10.100.1.102:27017为副本集节点,有多个可以多个# -d testdb是要备份的库名,不填默认副本集下全部# --out 保存路径

到这里,mongo的备份已经实现,现在要完成的就是自动啦。

编写脚本

自动定时备份其实就是通过crontab命令来实现啦。但前提是我们需要编写个定时跑的脚本。首先我们新建个脚本:

vi /home/local/mongod_bak.sh

然后编写对应的脚本,脚本上有对应的注释,供大家参考,这里主要做了三个动作,首先是备份,然后将备份的文件压缩,然后只保留最近7天的文件。

#!/bin/bashsourcepath='/home/local/mongodb/bin'  #mongodb文件路径targetpath='/home/local/mongodb_bak' #备份的路径nowtime=$(date +%Y-%m-%d-%H)replicationname='test'  #副本集名dbname='testdb' #库名port='27017' #端口ip1='10.100.1.101' #ipip2='10.100.1.102'echo "============== start backup ${nowtime} =============="start(){ ${sourcepath}/mongodump --host ${replicationname}/${ip1}:${port},${ip2}:${port} -d ${dbname} --out ${targetpath}/${nowtime}}execute(){ start if [ $? -eq 0 ] then echo "back successfully!" else echo "back failure!" fi} if [ ! -d "${targetpath}/${nowtime}/" ]then mkdir ${targetpath}/${nowtime}fiexecuteecho "============== back end ${nowtime} =============="echo "============== start zip ${nowtime} =============="zip -r ${targetpath}/${nowtime}.zip ${targetpath}/${nowtime}rm -rf ${targetpath}/${nowtime}echo "============== zip end ${nowtime} =============="echo "============== start delete seven days ago back ${nowtime} =============="find ${targetpath} -type f -mtime +7 -name "*" -exec rm -rf {} \; echo "============== delete end ${nowtime} =============="

编写完之后,给到文件可执行权限,并可以手动执行测试下:

chmod +x /home/local/mongod_bak.sh

定时任务

最后就是添加执行计划了,修改/etc/crontab

crontab -e

添加执行脚本,保存即可。

30 1 * * * /home/local/mongod_bak.sh #表示每天凌晨1点30执行备份

这里简单介绍下crontab。

crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于crontab文件中,以供之后读取和执行。

通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。

一些常用命令可以参考下:

#启动服务/sbin/service crond start #关闭服务/sbin/service crond stop #重启服务/sbin/service crond restart #重新载入配置/sbin/service crond reload #查看crontab服务状态service crond status #手动启动crontab服务service crond start #查看crontab服务是否已设置为开机启动,执行命令:ntsysv#加入开机自动启动:chkconfig --level 35 crond on#列出crontab文件crontab -l#编辑crontab文件crontab -e#删除crontab文件$ crontab -r#恢复丢失的crontab文件#假设你在自己的$HOME目录下还有一个备份,那么可以将其拷贝到/var/spool/cron/,其中是用户名#或者使用如下命令其中,是你在$HOME目录中副本的文件名crontab 

感谢各位的阅读!关于"Linux中MongoDB实现远程自动备份的示例"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

备份 文件 服务 命令 脚本 目录 副本 就是 指令 路径 参考 测试 示例 内容 多个 手动 更多 服务器 目标 端口 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州百单互联网科技有限公司 科技和互联网公司 今日互联网科技 圆梦互联网科技 九亚互联网科技 互联网金融监管科技 盛创互联网科技有限公司 互联网科技公司的市场部门 恒银科技与互联网金融 欧洲十大科技互联网公司 北京华百购互联网科技有限公司 承德科技产业互联网发展 湖北码尼互联网科技有限公司电话 厦门江牛科技互联网 互联网高科技行业有哪些企业 银川新华互联网科技学校原画 北京天晋互联网科技有限公司 广西泛欧互联网科技有限公司 互联网企业和网络科技有限公司 互联网科技创业有什么好项目 北京路客互联网科技有限公司 天津摩尔互联网科技 哈尔滨秒房互联网科技有限公司 互联网科技产品 现代互联网科技股 互联网科技和信息 用友工业互联网科技发展 互联网公司高科技产品 10位科技互联网大佬 伍佰万互联网科技是干嘛的
0