Mongodb自动备份数据库并删除指定天数前的备份
1、创建Mongodb数据库备份目录
mkdir -p /home/backup/mongod_bak/mongod_bak_now
mkdir -p /home/backup/mongod_bak/mongod_bak_list
2、新建Mongodb数据库备份脚本
cat /home/crontab/mongod_bak.sh #新建文件,输入以下代码 #!/bin/sh DUMP=/usr/local/mongodb/bin/mongodump #mongodump备份文件执行路径 OUT_DIR=/home/backup/mongod_bak/mongod_bak_now #临时备份目录 TAR_DIR=/home/backup/mongod_bak/mongod_bak_list #备份存放路径 DATE=`date +%Y_%m_%d` #获取当前系统时间 DB_USER=username #数据库账号 DB_PASS=123456 #数据库密码 DAYS=7 #DAYS=7代表删除7天前的备份,即只保留最近7天的备份 TAR_BAK="mongod_bak_$DATE.tar.gz" #最终保存的数据库备份文件名 cd $OUT_DIR rm -rf $OUT_DIR/* mkdir -p $OUT_DIR/$DATE $DUMP -u $DB_USER -p $DB_PASS -o $OUT_DIR/$DATE #备份全部数据库 tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE #压缩为.tar.gz格式 find $TAR_DIR/ -mtime +$DAYS -delete #删除7天前的备份文件
3、修改文件属性,使其可执行
chmod +x /home/crontab/mongod_bak.sh
或者
chmod 777 /home/crontab/mongod_bak.sh
4、修改/etc/crontab #添加计划任务
sudo vim /etc/crontab #在下面添加 30 1 * * * root /home/crontab/mongod_bak.sh #表示每天凌晨1点30执行备份
5、重新启动crond使设置生效
/etc/rc.d/init.d/crond restart chkconfig crond on #设为开机启动 service crond start #启动
每天在/home/backup/mongod_bak/mongod_bak_list目录下面可以看到mongod_bak_2018_02_28.tar.gz这样的
压缩文件。
至此,Linux下自动备份Mongodb数据库并删除指定天数前的备份完成。
附录:Mongodb数据库恢复
恢复全部数据库:
mongorestore –drop –directoryperdb
/home/backup/mongod_bak/mongod_bak_now/2018_02_28/
恢复单个数据库:
mongorestore –drop -d dataname –directoryperdb
/home/backup/mongod_bak/mongod_bak_now/2018_02_28/dataname
–drop参数:恢复数据之前删除原来数据库数据,避免数据重复。
–directoryperdb参数:数据库备份目录
-d参数:后面跟要恢复的数据库名称
Mongodb自动备份数据库并删除指定天数前的备份的更多相关文章
- Linux下通过脚本自动备份Oracle数据库并删除指定天数前的备份
说明: Oracle数据库服务器操作系统:CentOSIP:192.168.0.198端口:1521SID:orclOracle数据库版本:Oracle11gR2 具体操作: 1.root用户登录服务 ...
- Linux下自动备份Oracle数据库并删除指定天数前的备份
说明: Oracle数据库服务器 操作系统:CentOS IP:192.168.0.198 端口:1521 SID:orcl Oracle数据库版本:Oracle11gR2 具体操作: 1.root用 ...
- sql server 批量备份数据库及删除N天前的备份数据
很多时候,我们都需要将数据库进行备份,当服务器上数据库较多时,不可能一个数据库创建一个定时任务进行备份,这时,就需要进行批量的数据库备份操作,好了,废话不多说,具体实现语句如下: 1 2 3 4 5 ...
- SqlServer批量备份多个数据库且删除3天前的备份
/******************************************* * 批量备份数据库且删除3天前的备份 ************************************ ...
- Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录
此为在网络上找来的,觉得很好! 实现目的: 对Mongodb数据库日志按天保存,并且只保留最近7天的日志记录. 具体操作: 使用Mongodb数据库自带的命令来切割日志 ps -def | grep ...
- Debian下自动备份文件并上传到远程FTP服务器且删除指定日期前的备份Shell脚本
说明: 1.备份目录/home/osyunwei下面所有的文件到/home/osyunweibak里面,并且保存为osyunwei20120701.tar.gz的压缩文件格式(2012_07_01是 ...
- CentOS Linux自动备份MySQL数据库到远程FTP服务器并删除指定日期前的备份Shell脚本
说明: 我这里要把MySQL数据库存放目录/var/lib/mysql下面的pw85数据库备份到/home/mysql_data里面,并且保存为mysqldata_bak_2011_11_03.tar ...
- MSSQL Server2012备份所有数据库到网络共享盘上面,并自动删除几天前的备份。。
--要备份到哪一服务的IP网络位置,要提前打开文件夹共享.这里还要输入用户名和密码,下面这一行是建立共享 exec master..xp_cmdshell 'net use \\192.168.8.1 ...
- Windows环境下Oracle数据库的自动备份脚本自动删除30天前的备份
@echo off echo ================================================ echo Windows环境下Oracle数据库的自动备份脚本 echo ...
随机推荐
- boost::thread_specific_ptr
thread_specific_ptr代表了一个全局的变量,而在每个线程中都各自new一个线程本地的对象交给它进行管理. 线程之间就不会因为访问同一全局对象而引起资源竞争导致性能下降. 而线程结束时, ...
- Spring Boot2 系列教程(十六)定时任务的两种实现方式
在 Spring + SpringMVC 环境中,一般来说,要实现定时任务,我们有两中方案,一种是使用 Spring 自带的定时任务处理器 @Scheduled 注解,另一种就是使用第三方框架 Qua ...
- 宋宝华:Docker 最初的2小时(Docker从入门到入门)
本文系转载,著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 作者: 宋宝华 来源: 微信公众号linux阅码场(id: linuxdev) 最初的2小时,你会爱上Docker, ...
- recovery模式差分(增量)升级小结
最近在做recovery模式下的升级,简单的总结一下. 先说说recovery模式,他是个升级小系统,有单独的kernel,通过特定的系统命令就可以进入到此系统中,选择进入正常系统的kernel还是r ...
- Android应用程序版本升级时签名冲突
这种错误特别容易在调试中出现,原因是你手机上的应用是直接用eclipse或者android studio安装的,而eclipse或者android studio有自己默认的签名:**debug.key ...
- (一)初识EasyTouch
Easy Touch是一个手指触控(可以鼠标)的插件,可以非常方便的实现各种功能,使用插件第一步是添加Easy Touch组件,可以右键添加也可以在一个空的游戏物体上添加Easy Touch脚本(非事 ...
- django-模板之with标签(十二)
就是给传过来的值取个别名.
- axio安装及使用
先安装 npm install axios --save 再导入 import $ from "jquery"; import axios from "axios&quo ...
- Nexus 离线更新中央仓库索引
nexus可以在线更新中央仓库索引,但是更新速度慢,而且很有可能下载的索引不全.下面介绍一种离线更新中央仓库索引的方式,速度快并且可靠. 1.访问http://repo.maven.apache.or ...
- vue 合成图片
目的:将二维码图片和背景图片合成变成一张图片 方法一: 引入依赖 cnpm install qrcanvas --save cnpm install html2canvas --save 具体代码: ...