標籤:chmod ber database 資料庫密碼 lis str server1 func ges
一、建立MongoDB備份目錄
用來存放資料
mkdir
-p
/data/mongodb_bak/mongodb_bak_now
mkdir
-p
/data/mongodb_bak/mongodb_bak_list
二、建立MongoDBDatabase Backup指令碼
#!/bin/bash
#
DUMP=/usr/local/mongodb/bin/mongodump #mongodump命令路徑
OUT_DIR=/data/mongodb_bak/mongodb_bak_now #臨機操作備份目錄
TAR_DIR=/data/mongodb_bak/mongodb_bak_list #備份存放路徑
DATE=`date +%Y_%m_%d` #擷取當前系統時間
DB_USER=myadmin #資料庫帳號
DB_PASS=****** #資料庫密碼
DAYS=20
#DAYS=20代表刪除20天前的備份,即只保留近20天的備份
TAR_BAK="mongodb_bak_$DATE.tar.gz" #最終儲存的Database Backup檔案
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格式
find $TAR_DIR/ -mtime +$DAYS -delete #刪除20天前的備份檔案
exit
給指令碼加執行許可權
[[email protected] mongodb_bak]# chmod +x MongoDB_bak.sh
三、測試
運行指令碼
[[email protected] mongodb_bak]# sh +x MongoDB_bak.sh
在目錄下查看
將資料恢複:
[[email protected] mongodb_bak]# mongorestore -h 127.0.0.1:27017 -d cara2 /data/mongodb_bak/mongodb_bak_now/2018_07_25/cara
進入資料庫查看:
資料正常,說明備份一切都是ok的!
四、添加定時任務
[[email protected] ~]# crontab -e
35 21 * * * /data/mongodb_bak/MongoDB_bak.sh #每天18:00執行MongoDBDatabase Backup指令碼
用shell指令碼實現MongoDB資料庫自動備份