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/*

 
QQ截图20220810114738.png

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>

——————————————————————————————————————————————————————————
重写脚本::::

#/bin/bash!
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定时备份的更多相关文章

  1. linux下mongodb定时备份指定的集合

    目标:把一台linux机上mongodb的数据定时备份到另一台机上: 过程: 一开始打算使用mongoexport和mongoimport,但是总是会报“\x00”字符串不能识别的问题,后来就改成了m ...

  2. mongodb 定时备份

    通过centos 脚步来执行备份操作,使用crontab实现定时功能,并删除指定天数前的备份 具体操作: 1.创建Mongodb数据库备份目录 mkdir -p /home/backup/mongod ...

  3. Mongodb定时备份脚本和清除脚本

    Mongodb用的是可以热备份的mongodump和对应恢复的mongorestore,在linux下面使用shell脚本写的定时备份,代码如下 1.定时备份 #!/bin/bash sourcepa ...

  4. Linux中mongodb定时远程备份

    下载mongodb https://www.cnblogs.com/tartis/p/5291580.html mongodb定时备份文档 虚拟机报错要改BIOS 虚拟技术开启 进入root账户  s ...

  5. MongoDB远程定时备份与还原

    全手打原创,转载请标明出处:https://www.cnblogs.com/dreamsqin/p/10885165.html,多谢~=.= 备份命令mongodump脚本语法及各项参数含义 mong ...

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

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

  7. docker安装mongodb并备份

    安装 官方镜像地址: https://hub.docker.com/_/mongo?tab=description 可以查看对应的dockerfile, 通过观察docker-entrypoint.s ...

  8. linux定时备份mysql并同步到其它服务器

    数据在任何一家公司里面都是最核心的资产,定期备份则是为了保证数据库出现问题的时候能够及时回滚到最近的备份点,将损失缩小到最小 这篇文章将会两部分来说明:1.mysql的定期备份:2.同步到其它服务器 ...

  9. Linux下使用crontab定时备份日志

    上周学习了Linux,其中有使用crontab定时备份日志的内容,现把主要步骤记录如下: 首先需要备份的日志的源目录位于/opt/lampp/logs/access_log 备份到/tmp/logs下 ...

  10. windows下mysql数据库定时备份。

    注意:看本教程先必须会windows自带的"任务计划程序". 首先创建一个bat后缀的文件我的是timerExecutePhp.bat文件 timerExecutePhp.bat ...

随机推荐

  1. java第五周学习情况

    这个星期主要是在读<大道至简>这本书,话说这本书确实还行啊.看完之后懂得了很多东西,前天写了一篇读后感,把自己的感想记了下来,以后有机会可以再看一遍.然后就是一些Java的相关知识了.也没 ...

  2. Typora+PicGo+GitHub

    图片可以成功上传github,但是picgo相册无法预览,typora里也加载不出 image load failed 方法: 在`C:\Windows\System32\drivers\etc\ho ...

  3. Jmeter安装及环境配置

    Jmeter下载地址:http://jmeter.apache.org/download_jmeter.cgi 这里注意Source和Binaries两种下载分类 Source 是源代码版,你需要自己 ...

  4. 问题:PHP扩展功能,去掉分号';'没有用,是怎么回事?(已解决)

    1. 环境:win10的操作系统,IIS的服务器. 2. 问题描述:PHP要开启访问MYSQL的模块mysqli,我打开配置文件,去掉相关扩展模块前面的分号';',然后重启服务器,但是无效 ~~ 3. ...

  5. Ajax 后台传值接收方法

    $.ajax({ method: 'post', //数据类型 url: 'service.ashx?method=PostFile', //传输页面和页面方法 dataType: "jso ...

  6. 为动态二级域名申请https的免费证书.

    前面已经讲过将nginx部署,并注册了免费的二级域名.但将网址发给儿子,儿子说微信已经不能打开http的网址了,所以一想还是研究一下https的证书申请. 网上有很多讲通过,acme的脚本来自动化申请 ...

  7. centOS6设置网络

    一.配置网络模式为桥接模式 1.点击"编辑"->"虚拟网络编辑器" 2.配置NAT 3.配置DHCP 二.进入centos系统设置网络 [root@loc ...

  8. 手机 termux 开启ssh 并连接

    第一步 :下载  termux https://f-droid.org/packages/com.termux/ 第二步 :安装  termux 打开后安装  pkg install openssh ...

  9. C语言——数组

    一.一维数组 声明形式: type arrayName [ arraySize ]; 实例: 1 #include <stdio.h> 2 int main() 3 { 4 int Arr ...

  10. withRouter

    withRouter 可以加工一般组件,让一般组件具备路由组件所特有的api,比如this.props.history withRouter的返回值是一个新组件 import {withRouter} ...