写了小shell bash, 用于给mongodb数据进行备份

 #!/bin/bash
#backup MongoDB #文件目录
#backup MongoDB
#!/bin/bash
#backup MongoDB
#文件目录
MONGO_HOME=/usr/work/mongoDB
#mongodump命令路径 DUMP=$MONGO_HOME/mongo/bin/mongodump
#临时备份目录
if [ ! -d "$MONGO_HOME/mongodb_bak_now" ]; then
mkdir $MONGO_HOME/mongodb_bak_now
fi
OUT_DIR=$MONGO_HOME/mongodb_bak_now
#备份存放路径
if [ ! -d "$MONGO_HOME/mongodb_bak_list" ]; then
mkdir $MONGO_HOME/mongodb_bak_list
fi
TAR_DIR=/usr/work/mongoDB/mongodb_bak_list
#获取当前系统时间
DATE=`date +%Y_%m_%d`
#DAYS=15代表删除15天前的备份,即只保留近15天的备份
DAYS=
#最终保存的数据库备份文件
TAR_BAK="mongodb_bak_$DATE.tar.gz" cd $OUT_DIR
rm -rf $OUT_DIR/*
mkdir -p $OUT_DIR/$DATE
#备份全部数据库
$DUMP -h dev.iwhere.com:27017 -o $OUT_DIR/$DATE # 带密码链接方式
mongodump -h 172.27.137.26:36137 -d ssdb -o f:\data\ssdb170505 -u=administrator -p=qqddd.222
#压缩为.tar.gz格式
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE
#删除15天前的备份文件
find $TAR_DIR/ -mtime +$DAYS -delete exit

写了个远程的, 不太管用

#!/usr/bin/expect
set host_ip [index $argv ]
set username [index $argv ]
set passwd [index $argv ] spawn scp -r $TAR_DIR/$TAR_BAK $username@$host_ip:/opt/mongodb_bak/
expect {
"(yes/no)?"
{
send "yes\n"
expect "*assword:" {send "$password\n"}
}
"*assword:"
{
send "$password\n"
}
}
expect "100%"
expect eof

可加入到linux执行计划里面, 就会实现自动备份了

vim /etc/crontab
  * *  root /usr/work/mongoDB_back.sh
#秒, 分 时, 日 周, 用户 执行脚本

ps: 当带有密码的备份报错时, 需要添加:

当备份时报错:
Failed: error connecting to db server: server returned error on SASL authentication step: Authentication failed. 需要添加--authenticationDatabase admin

然后, 数据恢复( 使用mongorestore)

./mongorestore -h www.wenbronk: -d test /opt/wenbronk_soft
/mongo/mongodb-.4v/datas/iwhere/project/bak/mongdb_136/mongodb_bak_now/2017_05_03/test/

参数解释:

-h 指定要同步的服务器
-d 指定要同步后的数据库名, 可不同名
然后是本地保存的数据存放路径
–drop:恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用.

mongodb 数据库备份脚本的更多相关文章

  1. Python数据库备份脚本

    Python数据库备份脚本 #!/usr/bin/env python # author: liudong # -*- coding: utf-8 -*- # filename: db_bak.py ...

  2. Windows下MySQL数据库备份脚本(一)

    说明: MySQL数据库安装目录:C:\Program Files\MySQL\MySQL Server 5.0 MySQL数据库存放目录:C:\Program Files\MySQL\MySQL S ...

  3. Windows下MySQL数据库备份脚本(二)

    说明: MySQL数据库安装目录:C:\Program Files\MySQL\MySQL Server 5.0 MySQL数据库存放目录:C:\Program Files\MySQL\MySQL S ...

  4. mongodb数据库备份迁移 windows -> linux

    mongodb数据库备份迁移 windows -> linux cd 到本机mongodb的安装目录 如: C:\Program Files\MongoDB\Server\3.4\bin 可以发 ...

  5. MongoDB数据库备份与还原、单表的导入导出

    -------------------MongoDB备份与恢复------------------- 1.MongoDB数据库备份     1.语法:         mongodump -h dbh ...

  6. mysql数据库备份脚本

    mysql数据库备份脚本 mysql数据库分库备份脚本:[root@localhost tmp]# cat mysql.sh #!/bin/bash USER=root PASSWORD=joy4yo ...

  7. Shell脚本使用汇总整理——达梦数据库备份脚本

    Shell脚本使用汇总整理——达梦数据库备份脚本 Shell脚本使用的基本知识点汇总详情见连接: https://www.cnblogs.com/lsy-blogs/p/9223477.html 脚本 ...

  8. PCB MongoDB数据库 备份与还原

    一. MongoDB数据库 备份与还原工具介绍: 数据备份工具  mongodump.exe 数据还原工具   mongorestore.exe 二. MongoDB数据库备份 mongodump - ...

  9. SQLSERVER 数据库备份脚本-支持多库备份

    原文:SQLSERVER 数据库备份脚本-支持多库备份 <pre name="code" class="sql">--变量定义 DECLARE @b ...

随机推荐

  1. 加锁并发算法 vs 无锁并发算法

    Heinz Kabutz 在上周举办了一次成功 JCrete研讨会,我在会上参加了对一种新的 StampedLock(于JSR166中 引入) 进行的评审.StampedLock (邮戳锁) 旨在解决 ...

  2. hdu 5063 操作逆推+mul每次要*2%(modo - 1)

    http://acm.hdu.edu.cn/showproblem.php?pid=5063 只有50个询问,50个操作逆推回去即可,注意mul每次要*2%(modo - 1)因为是指数! #incl ...

  3. Delphi for iOS开发指南(8):在iOS应用程序中使用Tab组件来显示分页

    Delphi for iOS开发指南(8):在iOS应用程序中使用Tab组件来显示分页 在FireMonkey iOS应用程序中的Tab Tab由FMX.TabControl.TTabControl定 ...

  4. 【Win2D】【译】Win2D 快速入门

    原文链接:http://microsoft.github.io/Win2D/html/QuickStart.htm 快速入门 这是 Win2D 的快速入门教程,将会介绍 Win2D 中的基本功能.你将 ...

  5. 【转】WinRT 中SystemTrigger 构造函数的 SystemTriggerType 参数的解释

    中文版:http://msdn.microsoft.com/library/windows/apps/windows.applicationmodel.background.systemtrigger ...

  6. 在c#客户端程序中使用log4net

    为什么使用log4net 有些日志语句只是在开发中用于调试的,不应该在Release版本中输出,log4net通过配置文件可以为Debug和Release不同的模式设置不同的输出级别来控制,而且如果已 ...

  7. 利用HttpWebRequest模拟表单提交

    using System; using System.Collections.Specialized; using System.IO; using System.Net; using System. ...

  8. 爬虫Scrapy指令学习

    1.新建一个新的爬虫项目指令 scrapy startproject xxx 2.在项目/spider目录下创建一个名为XXX的爬虫,并指定爬取域的范围  scrapy genspider XXX & ...

  9. Day 4 list 列表的使用方法

     https://www.cnblogs.com/fanison/p/7123532.html s="abcdefg"print("s[3]:",s[3])pr ...

  10. 程序媛计划——mysql连接表

    #inner join等值连接/内连接 mysql> select * from info; +------+-------------+----------+ | name | phone | ...