mongodb 数据库备份脚本
写了小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 数据库备份脚本的更多相关文章
- Python数据库备份脚本
Python数据库备份脚本 #!/usr/bin/env python # author: liudong # -*- coding: utf-8 -*- # filename: db_bak.py ...
- Windows下MySQL数据库备份脚本(一)
说明: MySQL数据库安装目录:C:\Program Files\MySQL\MySQL Server 5.0 MySQL数据库存放目录:C:\Program Files\MySQL\MySQL S ...
- Windows下MySQL数据库备份脚本(二)
说明: MySQL数据库安装目录:C:\Program Files\MySQL\MySQL Server 5.0 MySQL数据库存放目录:C:\Program Files\MySQL\MySQL S ...
- mongodb数据库备份迁移 windows -> linux
mongodb数据库备份迁移 windows -> linux cd 到本机mongodb的安装目录 如: C:\Program Files\MongoDB\Server\3.4\bin 可以发 ...
- MongoDB数据库备份与还原、单表的导入导出
-------------------MongoDB备份与恢复------------------- 1.MongoDB数据库备份 1.语法: mongodump -h dbh ...
- mysql数据库备份脚本
mysql数据库备份脚本 mysql数据库分库备份脚本:[root@localhost tmp]# cat mysql.sh #!/bin/bash USER=root PASSWORD=joy4yo ...
- Shell脚本使用汇总整理——达梦数据库备份脚本
Shell脚本使用汇总整理——达梦数据库备份脚本 Shell脚本使用的基本知识点汇总详情见连接: https://www.cnblogs.com/lsy-blogs/p/9223477.html 脚本 ...
- PCB MongoDB数据库 备份与还原
一. MongoDB数据库 备份与还原工具介绍: 数据备份工具 mongodump.exe 数据还原工具 mongorestore.exe 二. MongoDB数据库备份 mongodump - ...
- SQLSERVER 数据库备份脚本-支持多库备份
原文:SQLSERVER 数据库备份脚本-支持多库备份 <pre name="code" class="sql">--变量定义 DECLARE @b ...
随机推荐
- 用VS2010编译python2.7的源码
1.下载python2.7的源码,解压缩如下目录 2. 网上有些教程说从PCbuild目录中进入,打开sln文件,但是我这样做是不能用vs2010打开的, 并且也尝试了用VS2013打开sln,但是是 ...
- Useful Field of View (UFOV)
IE8不支持canvas,使用excanvas.js,js代码需要放在window.onload=function(){...}内,$(docuemnt).ready(function(){...}) ...
- DBCC--OPENTRAN
返回最早开始的但仍在运行的事务 数据库 'DB1' 的事务信息. 最早的活动事务: SPID (服务器进程 ID): 60 UID (用户 ID): -1 名称 : user_tra ...
- 纸壳CMS替换默认实现
简介 纸壳CMS是一个开源免费的可视化内容管理建站系统,拖拽就可以轻松建网站. GitHub: http://github.com/SeriaWei/ZKEACMS 纸壳CMS在设计上使用的是ASP. ...
- ASP.NET Core 2 学习笔记(四)依赖注入
ASP.NET Core使用了大量的依赖注入(Dependency Injection, DI),把控制反转(Inversion Of Control, IoC)运用的相当巧妙.DI可算是ASP.NE ...
- JavaScript基础流程控制(3)
day51 参考:https://www.cnblogs.com/liwenzhou/p/8004649.html for循环 while循环 三元运算 a>b条件成立,选a,不成立选b
- (2)Oracle基础--表空间
· 表空间概述 <1> 理解表空间 ① 表空间与数据库的关系: 表空间是数据库的逻辑存储空间,可以理解为在数据库中开辟的一块空间,用于存放数据库的对象. 一个数据库可以由多个表空间构成.O ...
- super()的作用
super能够用来訪问父类的构造方法和被子类所隐藏的方法.假设子类中有方法与父类中的方法名称和參数同样,则父类中的方法就被隐藏起来,也就是说在子类中重载了父类中的方法. 引用父类中所隐藏的语法格式例如 ...
- Archlinux Setup AUR
方案一 pacman -Sy yaourt yaourt -Sy pacaur pacaur -Sa xxx 方案二 git clone git clone https://aur.archlinux ...
- linux查看防火墙状态及开启关闭命令
存在以下两种方式: 一.service方式 查看防火墙状态: [root@centos6 ~]# service iptables status iptables:未运行防火墙. 开启防火墙: [ro ...