一、创建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

给脚本加执行权限

[root@server1 mongodb_bak]# chmod +x MongoDB_bak.sh 

三、测试

运行脚本

[root@server1 mongodb_bak]# sh +x MongoDB_bak.sh

在目录下查看

将数据恢复:

[root@server1 mongodb_bak]# mongorestore -h 127.0.0.1:27017 -d cara2 /data/mongodb_bak/mongodb_bak_now/2018_07_25/cara

进入数据库查看:

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

四、添加定时任务

[root@server1 ~]# crontab -e

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

用shell脚本实现MongoDB数据库自动备份的更多相关文章

  1. Linux下shell脚本实现mongodb定时自动备份

    MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功 ...

  2. shell脚本,mysql数据库的备份-2[mysqldump]

    # 数据库IPIP=127.0.0.1# 数据库端口PORT=3306# 数据库用户USER=root# 数据库密码PASSWORD=****# 要备份的数据库TARGET_DB=database_n ...

  3. shell脚本,mysql数据库的备份,并压缩

    db_user="root"db_passwd="xxx"db_host="localhost" databases="xxx-p ...

  4. svn数据库自动备份脚本

    创建一个存放备份数据的路径 mkdir /data/svnbak -p 采用shell脚本的方式实现自动备份 #vim backup.sh #!/bin/bash log="/data/sv ...

  5. linux shell简单实现数据库自动备份

    以centos系统为例,实现数据库自动备份.1.写一个shell: 12 #! /bin/bashmysqldump -cp --user=root --password='123' dbName | ...

  6. Windows下Oracle数据库自动备份批处理脚本

    expdb命令版本 @echo off REM ########################################################### REM # Windows Se ...

  7. C#编写强大的SQL Server数据库自动备份服务

    数据库自动备份服务,带配置,还算可以吧 周末抽时间,编写了一个这样的工具,可以让,对数据库不了解或不熟悉的人,直接学会使用备份,省时省力,同样,我也将一份,通过脚本进行备份的,也奉献上来, 通过sql ...

  8. C# 编写的SqlServer 数据库自动备份服务,带配置,功能强大

    数据库自动备份服务,带配置,还算可以吧 周末抽时间,编写了一个这样的工具,可以让,对数据库不了解或不熟悉的人,直接学会使用备份,省时省力,同样,我也将一份,通过脚本进行备份的,也奉献上来, 通过sql ...

  9. MVC5中Model层开发数据注解 EF Code First Migrations数据库迁移 C# 常用对象的的修饰符 C# 静态构造函数 MSSQL2005数据库自动备份问题(到同一个局域网上的另一台电脑上) MVC 的HTTP请求

    MVC5中Model层开发数据注解   ASP.NET MVC5中Model层开发,使用的数据注解有三个作用: 数据映射(把Model层的类用EntityFramework映射成对应的表) 数据验证( ...

随机推荐

  1. Android 中三种启用线程的方法

    在多线程编程这块,我们经常要使用Handler(处理),Thread(线程)和Runnable这三个类,那么他们之间的关系你是否弄清楚了呢? 首先说明Android的CPU分配的最小单元是线程,Han ...

  2. (Vue)移动端点击输入框,弹出键盘,底部被顶起问题

    (Vue)移动端点击输入框,弹出键盘,底部被顶起问题:https://www.jianshu.com/p/210fbc846544 问题描述:Vue开发中,当我们相对于父视图的底部布局子控件时,需要用 ...

  3. [HDU 1529]Cashier Employment(差分约束系统)

    [HDU 1529]Cashier Employment(差分约束系统) 题面 有一个超市,在24小时对员工都有一定需求量,表示为\(r_i\),意思为在i这个时间至少要有i个员工,现在有n个员工来应 ...

  4. HDU 1255 覆盖的面积 ( 扫描线 + 离散 求矩阵大于k次面积并 )

    覆盖的面积 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  5. python 谈赋值和copy区别

    1变量赋值 a=1 b=a b=1 a=3 b还是等于1 2,列表赋值 嵌套列表情况 如果想让列表单独出来怎么办呢 ,这时候用到copy 如果列表嵌套列表情况 还是一样的, 如果想深度copy imp ...

  6. html标签的target属性应用

    1. 定义和用法 target 属性规定在何处打开页面上的所有链接. <head> <base target="_blank" /> </head&g ...

  7. ios-实现ARC与MRC混编

    选择target -> build phases -> compile sources -> 用ARC的文件将compiler flags设置为:-fobjc-arc,用MRC的文件 ...

  8. Python-编码这趟浑水

    最近听Alex讲到python编码,还特意用博客讲解,觉得问题严重了,于是翻看各种博客,先简单的对编码错误做一个总结,其他的后续慢慢补上,还得上班.还得学习.还得写博客?感觉有点吃不消了.各位大神不喜 ...

  9. linux设置python虚拟环境的环境变量

    针对 linux系统中 python虚拟环境 设置环境变量 2种方法: 1.在建好的虚拟环境的 venv/bin/active 文件中,写入需要的环境变量,再进入虚拟环境: 如 配置文件路径 JERR ...

  10. django项目中账号注册登陆使用JWT的记录

    需求分析 1.  注册用JWT做状态保持    1.1 安装jwt    pip install djangorestframework-jwt        1.2 去settings里面配置jwt ...