使用centos系统中的crontab命令对mongodb定时备份恢复

  • A+
所属分类:MongoDB

经由过程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 #新建文件,输入以下代码

#!/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

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>

您可能感兴致的文章:

Mongodb实现准时备份与规复的办法教程MongoDB 导出导入备份规复数据详解及实例MongoDB使用自带的敕令行对象进行备份和规复的教程Windows或Linux体系中备份和规复MongoDB数据的教程Mongodb数据库的备份与规复操作实例MongoDB整库备份与还原以及单个collection备份、规复办法

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: