1、建立MongoDB備份目錄mongodb
用來存放數據
數據庫
mkdir
-p
/data/mongodb_bak/mongodb_bak_now
mkdir
-p
/data/mongodb_bak/mongodb_bak_list
bash
2、建立MongoDB數據庫備份腳本測試
#!/bin/bash
#
rest
DUMP=/usr/local/mongodb/bin/mongodump #mongodump命令路徑code
OUT_DIR=/data/mongodb_bak/mongodb_bak_now #臨時備份目錄
TAR_DIR=/data/mongodb_bak/mongodb_bak_list #備份存放路徑
DATE=`date +%Y_%m_%d` #獲取當前系統時間 server
DB_USER=myadmin #數據庫帳號 crontab
DB_PASS=****** #數據庫密碼it
DAYS=20
#DAYS=20表明刪除20天前的備份,即只保留近20天的備份
io
TAR_BAK="mongodb_bak_$DATE.tar.gz" #最終保存的數據庫備份文件
cd $OUT_DIR
rm -rf $OUT_DIR/*
mkdir -p $OUT_DIR/$DATE
$DUMP -h 127.0.0.1:27017 -u $DB_USER -p $DB_PASS --authenticationDatabase "admin" -o $OUT_DIR/$DATE #備份所有數據庫
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE #壓縮爲.tar.gz格式
exit
給腳本加執行權限
[root@server1 mongodb_bak]# chmod +x MongoDB_bak.sh
3、測試
運行腳本
[root@server1 mongodb_bak]# sh +x MongoDB_bak.sh
在目錄下查看
將數據恢復:
[root@server1 mongodb_bak]# mongorestore -h 127.0.0.1:27017 -d cara2 /data/mongodb_bak/mongodb_bak_now/2018_07_25/cara
進入數據庫查看:
數據正常,說明備份一切都是ok的!
4、添加定時任務
[root@server1 ~]# crontab -e
35 21 * * * /data/mongodb_bak/MongoDB_bak.sh #天天18:00執行MongoDB數據庫備份腳本