一、創(chuàng)建MongoDB備份目錄
mkdir -p /usr/dataBak/mongodb_bak/mongodb_bak_now
mkdir -p /usr/dataBak/mongodb_bak/mongodb_bak_list
二哎垦、備份腳本(/usr/dataBak/mongodb_bak/MongoDB_bak.sh)
cd /usr/dataBak/mongodb_bak/
vi MongoDB_bak.sh
在MongoDB_bak.sh里面輸入
# !/bin/bash
# backup MongoDB
#mongodump命令路徑
DUMP=/usr/bin/mongodump
#臨時備份目錄
OUT_DIR=/usr/dataBak/mongodb_bak/mongodb_bak_now
#備份存放路徑
TAR_DIR=/usr/dataBak/mongodb_bak/mongodb_bak_list
#獲取當前系統(tǒng)時間
DATE=`date +%Y_%m_%d`
#數(shù)據(jù)庫賬號
DB_USER="admin"
#數(shù)據(jù)庫密碼
DB_PASS="123456"
#DAYS=15代表刪除15天前的備份镜雨,即只保留近15天的備份
DAYS=15
#最終保存的數(shù)據(jù)庫備份文件
TAR_BAK="mongodb_bak_$DATE.tar.gz"
cd $OUT_DIR
rm -rf $OUT_DIR/*
mkdir -p $OUT_DIR/$DATE
$DUMP -o $OUT_DIR/$DATE
# 壓縮格式為 .tar.gz 格式
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE
# 刪除 15 天前的備份文件
find $TAR_DIR/ -mtime +$DAYS -delete
exit
注意:DUMP這里的路徑是mongodb安裝的時候的路徑嫂侍,可以通過:
locate mongo
查找到mongodb安裝的位置,我的系統(tǒng)下安裝在/usr/bin/下面荚坞,在/usr/bin/里面也有/usr/bin/mongodump挑宠。
三、修改/etc/crontab西剥,添加計劃任務
vi /etc/crontab
添加任務:每天1:30開始執(zhí)行MongoDB數(shù)據(jù)庫備份腳本
30 1 * * * root /usr/dataBak/mongodb_bak/MongoDB_bak.sh
四痹栖、恢復數(shù)據(jù)庫
如:我想要從備份的數(shù)據(jù)庫testdb里面,恢復test1數(shù)據(jù)庫里面的數(shù)據(jù)瞭空。
執(zhí)行以下代碼:
mongorestore --db test1 /usr/dataBak/mongodb_bak/mongodb_bak_now/2018_04_19/testdb