mongodb定时备份
1、
https://www.jianshu.com/p/a9352e28e2d6 (未测试)
通过centos 脚步来执行备份操作,使用crontab实现定时功能,并删除指定天数前的备份
具体操作:
1、创建Mongodb数据库备份目录
mkdir -p /home/backup/mongod_bak/mongod_bak_now
mkdir -p /home/backup/mongod_bak/mongod_bak_list
2、新建Mongodb数据库备份脚本
vi /home/crontab/mongod_bak.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_XXXX.tar.gz" #最终保存的数据库备份文件名
cd $OUT_DIR
rm -rf $OUT_DIR/*

3、修改文件属性,使其可执行
chmod +x /home/crontab/mongod_bak.sh
4、修改/etc/crontab #添加计划任务
crontab -e
在下面添加
30 1 * * * root /home/crontab/mongod_bak.sh #表示每天凌晨1点30执行备份
5、重新启动crond使设置生效
/sbin/service crond reload #重新载入配置
chkconfig --level 35 crond on #加入开机自动启动:
/sbin/service crond start #启动服务
crontab -l #列出crontab文件
每天在/home/backup/mongod_bak/mongod_bak_list目录下面可以看到mongod_bak_2017_02_28.tar.gz这样的压缩文件。
至此,Linux下自动备份Mongodb数据库并删除指定天数前的备份完成。
附录:Mongodb数据库恢复
恢复全部数据库:
mongorestore –drop –directoryperdb
/home/backup/mongod_bak/mongod_bak_now/2017_02_28/
恢复单个数据库:
mongorestore –drop -d dataname –directoryperdb
/home/backup/mongod_bak/mongod_bak_now/2017_02_28/dataname
–drop参数:恢复数据之前删除原来数据库数据,避免数据重复。
–directoryperdb参数:数据库备份目录
-d参数:后面跟要恢复的数据库名称
关于crontab:
crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρ?νο?),原意是时间。
通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。
安装crontab:
[root@CentOS ~]# yum install vixie-cron
[root@CentOS ~]# yum install crontabs
说明:
vixie-cron软件包是cron的主程序;
crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。
cron 是linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
/sbin/service crond start #启动服务
/sbin/service crond stop #关闭服务
/sbin/service crond restart #重启服务
/sbin/service crond reload #重新载入配置
查看crontab服务状态:
service crond status
手动启动crontab服务:
service crond start
其他命令:
查看crontab服务是否已设置为开机启动,执行命令:ntsysv
加入开机自动启动:
chkconfig --level 35 crond on
列出crontab文件
crontab -l
编辑crontab文件
crontab -e
删除crontab文件
$ crontab -r
恢复丢失的crontab文件
假设你在自己的$HOME目录下还有一个备份,那么可以将其拷贝到/var/spool/cron/<username>,其中<username >是用户名
或者使用如下命令其中,<filename>是你在$HOME目录中副本的文件名
crontab <filename>
——————————————————————————————————————————————————————————
重写脚本::::
DUMP=/usr/bin/mongodump #mongodump备份文件执行路径
OUT_DIR=/root/mongodback/mongod_temp #临时备份目录
TAR_DIR=/root/mongodback/ #备份存放路径
DATE=`date +%Y_%m_%d` #获取当前系统时间
DB_USER=admin #数据库账号
DB_PASS=wwwssssstttt #数据库密码
DAYS=7 #DAYS=7代表删除7天前的备份,即只保留最近7天的备份
TAR_BAK="mongod_bak_XXXX.tar.gz" #最终保存的数据库备份文件名
cd $OUT_DIR
rm -rf $OUT_DIR/*
# mongodump -h 10.116.6.66 -d yaotest -o /root/mongodback/
mkdir -p $OUT_DIR/$DATE
#$DUMP -u $DB_USER -p $DB_PASS -o $OUT_DIR/$DATE
$DUMP -h 192.198.6.66 -d yaotest -o $OUT_DIR/$DATE
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE
find $TAR_DIR/ -mtime +$DAYS -delete
mongodb定时备份的更多相关文章
- linux下mongodb定时备份指定的集合
目标:把一台linux机上mongodb的数据定时备份到另一台机上: 过程: 一开始打算使用mongoexport和mongoimport,但是总是会报“\x00”字符串不能识别的问题,后来就改成了m ...
- mongodb 定时备份
通过centos 脚步来执行备份操作,使用crontab实现定时功能,并删除指定天数前的备份 具体操作: 1.创建Mongodb数据库备份目录 mkdir -p /home/backup/mongod ...
- Mongodb定时备份脚本和清除脚本
Mongodb用的是可以热备份的mongodump和对应恢复的mongorestore,在linux下面使用shell脚本写的定时备份,代码如下 1.定时备份 #!/bin/bash sourcepa ...
- Linux中mongodb定时远程备份
下载mongodb https://www.cnblogs.com/tartis/p/5291580.html mongodb定时备份文档 虚拟机报错要改BIOS 虚拟技术开启 进入root账户 s ...
- MongoDB远程定时备份与还原
全手打原创,转载请标明出处:https://www.cnblogs.com/dreamsqin/p/10885165.html,多谢~=.= 备份命令mongodump脚本语法及各项参数含义 mong ...
- Linux下shell脚本实现mongodb定时自动备份
MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功 ...
- docker安装mongodb并备份
安装 官方镜像地址: https://hub.docker.com/_/mongo?tab=description 可以查看对应的dockerfile, 通过观察docker-entrypoint.s ...
- linux定时备份mysql并同步到其它服务器
数据在任何一家公司里面都是最核心的资产,定期备份则是为了保证数据库出现问题的时候能够及时回滚到最近的备份点,将损失缩小到最小 这篇文章将会两部分来说明:1.mysql的定期备份:2.同步到其它服务器 ...
- Linux下使用crontab定时备份日志
上周学习了Linux,其中有使用crontab定时备份日志的内容,现把主要步骤记录如下: 首先需要备份的日志的源目录位于/opt/lampp/logs/access_log 备份到/tmp/logs下 ...
- windows下mysql数据库定时备份。
注意:看本教程先必须会windows自带的"任务计划程序". 首先创建一个bat后缀的文件我的是timerExecutePhp.bat文件 timerExecutePhp.bat ...
随机推荐
- 用python3操作mysql数据库实现企业级产品参数查询
Python3 MySQL 数据库连接 - PyMySQL 驱动 一.什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则 ...
- ZIP文件操作工具类
2 3 import lombok.extern.slf4j.Slf4j; 4 import org.apache.commons.io.FilenameUtils; 5 6 import java. ...
- Linux基础第十一章:日志文件及如何使用rsyslog搭建小型日志服务器
一.日志文件 1.日志作用 2.常用日志 3.日志级别 二.Rsyslog日志处理系统 1.使用Rsyslog创建日志有点 2.Rsyslog配置文件解析 3.使用rsyslog将ssh服务的日志单独 ...
- Pytest之参数化
在unittest测试中,有参数化的概念,那么在pytest中也有. 如何理解参数化: 当对一个测试函数进行测试时,通常会给函数传递多组参数.比如测试账号登陆,我们需要模拟各种千奇百怪的账号密码.可以 ...
- 更改NX TITLE为路径
#include<iostream>#include <conio.h>#include <math.h>#include <stdio.h>#incl ...
- Spring-动力节点
一.Spring启示录 阅读以下代码: package com.powernode.oa.controller; import com.powernode.oa.service.UserService ...
- 2D 消隐效果
在触发消隐的物体(比如玩家)挂下面的代码,以及box collider,rigidbody 2d using UnityEngine; public class ColliderFader : Mon ...
- vue接口
前端的接口与后端进行对接,根据后台的接口字段与前端的字段对应 这是前端的定义方法,下面是一个方法定义的默认值下标 接下来就是提交的方法里面进行对接,再将ruleForm重新定义,然后进入接口进行存储 ...
- 第08组Beta冲刺(3/4)
队名 八组评分了吗 组长博客链接(2分) 组员1李昕晖(组长) 过去两天完成了哪些任务 文字/口头描述 了解各个小组的进度与难以攻破的地方,晚上安排开会,安排新的冲刺任务. 重新分配小组及个人任务. ...
- 【python】python,PyQt5以及Qt designer的使用_做界面(用vscode)
1.PyQt5和Qt designer准备 win+r cmd 输入以下 python -m pip install -i http://pypi.douban.com/sim ...