热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:用shell脚本实现MongoDB数据库自动备份

篇首语:本文由编程笔记#小编为大家整理,主要介绍了用shell脚本实现MongoDB数据库自动备份相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了用shell脚本实现MongoDB数据库自动备份相关的知识,希望对你有一定的参考价值。



一、创建MongoDB备份目录

用来存放数据

mkdir -p /data/mongodb_bak/mongodb_bak_now

mkdir -p /data/mongodb_bak/mongodb_bak_list

技术分享图片

二、创建MongoDB数据库备份脚本


#!/bin/bash
#

DUMP=/usr/local/mongodb/bin/mongodump    #mongodump命令路


OUT_DIR=/data/mongodb_bak/mongodb_bak_now   
#临时备份目录

TAR_DIR=/data/mongodb_bak/mongodb_bak_list   
#备份存放路径

DATE=`date +%Y_%m_%d`   #获取当前系统时间 


DB_USER=myadmin    #数据库账号 


DB_PASS=******    #数据库密码


DAYS=20    #DAYS=20代表删除20天前的备份,即只保留近20天的备份


TAR_BAK="mongodb_bak_$DATE.tar.gz"   
#最终保存的数据库备份文件


cd $OUT_DIR


rm -rf $OUT_DIR/*


mkdir -p $OUT_DIR/$DATE

 
$DUMP -h 127.0.0.1:27017 -u $DB_USER -p $DB_PASS --authenticationDatabase "admin" -o $OUT_DIR/$DATE  
#备份全部数据库


tar -zcvf $TAR_DIR/$TAR_BAK $
OUT_DIR/$DATE    #压缩为.tar.gz格式


find $TAR_DIR/ -mtime +$DAYS -delete   #删除20天前的备份文件


exit


给脚本加执行权限

[[email protected] mongodb_bak]# chmod +x MongoDB_bak.sh

三、测试

运行脚本

[[email protected] mongodb_bak]# sh +x MongoDB_bak.sh

技术分享图片


在目录下查看

技术分享图片


将数据恢复:

[[email protected] mongodb_bak]# mongorestore -h 127.0.0.1:27017 -d cara2 /data/mongodb_bak/mongodb_bak_now/2018_07_25/cara

技术分享图片


进入数据库查看:

技术分享图片


技术分享图片


数据正常,说明备份一切都是ok的!


四、添加定时任务

[[email protected] ~]# crontab -e

35 21 * * * /data/mongodb_bak/MongoDB_bak.sh   #每天18:00执行MongoDB数据库备份脚本



推荐阅读
  • 开发笔记:由数据库某字段存数组引发的json_encode/serialize思考
    开发笔记:由数据库某字段存数组引发的json_encode/serialize思考 ... [详细]
  • docker镜像重启_docker怎么启动镜像dock ... [详细]
  • 本文详细介绍了 Linux 系统中用户、组和文件权限的设置方法,包括基本权限(读、写、执行)、特殊权限(SUID、SGID、Sticky Bit)以及相关配置文件的使用。 ... [详细]
  • 本文详细探讨了Java命令行参数的概念、使用方法及在实际编程中的应用,包括如何通过命令行传递参数给Java程序,以及如何在Java程序中解析这些参数。 ... [详细]
  • Windows 环境下安装 Git 并连接 GitHub 的详细步骤
    本文详细介绍了如何在 Windows 系统中安装 Git 工具,并通过配置 SSH 密钥实现与 GitHub 的安全连接。包括下载、安装、环境配置及验证连接等关键步骤。 ... [详细]
  • 在 Android 开发中,通过 Intent 启动 Activity 或 Service 时,可以使用 putExtra 方法传递数据。接收方可以通过 getIntent().getExtras() 获取这些数据。本文将介绍如何使用 RoboGuice 框架简化这一过程,特别是 @InjectExtra 注解的使用。 ... [详细]
  • 本文将探讨2015年RCTF竞赛中的一道PWN题目——shaxian,重点分析其利用Fastbin和堆溢出的技巧。通过详细解析代码流程和漏洞利用过程,帮助读者理解此类题目的破解方法。 ... [详细]
  • CSS高级技巧:动态高亮当前页面导航
    本文介绍了如何使用CSS实现网站导航栏中当前页面的高亮显示,提升用户体验。通过为每个页面的body元素添加特定ID,并结合导航项的类名,可以轻松实现这一功能。 ... [详细]
  • 版本控制工具——Git常用操作(下)
    本文由云+社区发表作者:工程师小熊摘要:上一集我们一起入门学习了git的基本概念和git常用的操作,包括提交和同步代码、使用分支、出现代码冲突的解决办法、紧急保存现场和恢复 ... [详细]
  • 优化Flask应用的并发处理:解决Mysql连接过多问题
    本文探讨了在Flask应用中通过优化后端架构来应对高并发请求,特别是针对Mysql 'too many connections' 错误的解决方案。我们将介绍如何利用Redis缓存、Gunicorn多进程和Celery异步任务队列来提升系统的性能和稳定性。 ... [详细]
  • 在许多地理位置选择类的应用程序中,侧边栏是常见的用户界面元素,用于通过选择特定的字母快速定位和选择地点。本文将详细介绍如何在Android应用中创建一个具有波浪效果的自定义侧边栏,以提升用户体验。 ... [详细]
  • 本文探讨了在QT框架中如何有效遍历文件内容,并解决了一个常见的错误,即文件内容读取为空时弹窗无法正常显示的问题。 ... [详细]
  • 本指南详细介绍了如何在同一台计算机上配置多个GitHub账户,并使用不同的SSH密钥进行身份验证,确保每个账户的安全性和独立性。 ... [详细]
  • 本文详细介绍了 Kubernetes 集群管理工具 kubectl 的基本使用方法,涵盖了一系列常用的命令及其应用场景,旨在帮助初学者快速掌握 kubectl 的基本操作。 ... [详细]
  • 在Linux系统上构建Web服务器的详细步骤
    本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ... [详细]
author-avatar
doliangzhe
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有