通過centos 腳步來執(zhí)行備份操作,使用crontab實現(xiàn)定時功能,并刪除指定天數(shù)前的備份
具體操作:
1、創(chuàng)建Mongodb數(shù)據(jù)庫備份目錄
mkdir -p
/home/backup/mongod_bak/mongod_bak_now
mkdir -p
/home/backup/mongod_bak/mongod_bak_list
2、新建Mongodb數(shù)據(jù)庫備份腳本
vi
/home/crontab/mongod_bak.sh #新建文件,輸入以下代碼
#!/bin/sh
DUMP=/usr/local/mongodb/bin/mongodump
#mongodump備份文件執(zhí)行路徑
OUT_DIR=/home/backup/mongod_bak/mongod_bak_now
#臨時備份目錄
TAR_DIR=/home/backup/mongod_bak/mongod_bak_list
#備份存放路徑
DATE=`date +%Y_%m_%d` #獲取當(dāng)前系統(tǒng)時間
DB_NAME=ABC
DB_PORT=27017
DB_USER=username #數(shù)據(jù)庫賬號
DB_PASS=123456 #數(shù)據(jù)庫密碼
DAYS=7 #DAYS=7代表刪除7天前的備份,即只保留最近7天的備份
TAR_BAK="mongod_bak_$DATE.tar.gz"
#最終保存的數(shù)據(jù)庫備份文件名
cd $OUT_DIR
rm -rf $OUT_DIR/*
mkdir -p $OUT_DIR/$DATE
$DUMP -u $DB_USER -p
$DB_PASS -d $DB_NAME --port=$DB_PORT -o $OUT_DIR/$DATE #備份全部數(shù)據(jù)庫
tar -zcvf
$TAR_DIR/$TAR_BAK $OUT_DIR/$DATE #壓縮為.tar.gz格式
find $TAR_DIR/ -mtime
+$DAYS -delete #刪除7天前的備份文件
3、修改文件屬性,使其可執(zhí)行
chmod +x
/home/crontab/mongod_bak.sh
4、執(zhí)行命令添加計劃任務(wù)
crontab -e
5、添加如下定義
30 1 * * * root
/home/crontab/mongod_bak.sh #表示每天凌晨1點30執(zhí)行備份
6、重新啟動crond使設(shè)置生效
systemctl restart
crond
至此,Linux下自動備份Mongodb數(shù)據(jù)庫并刪除指定天數(shù)前的備份完成。
附錄:Mongodb數(shù)據(jù)庫恢復(fù)
恢復(fù)全部數(shù)據(jù)庫:
mongorestore –drop
–directoryperdb
/home/backup/mongod_bak/mongod_bak_now/2017_02_28/
恢復(fù)單個數(shù)據(jù)庫:
mongorestore –drop -d
dataname –directoryperdb
/home/backup/mongod_bak/mongod_bak_now/2017_02_28/dataname
–drop參數(shù):恢復(fù)數(shù)據(jù)之前刪除原來數(shù)據(jù)庫數(shù)據(jù),避免數(shù)據(jù)重復(fù)。
–directoryperdb參數(shù):數(shù)據(jù)庫備份目錄
-d參數(shù):后面跟要恢復(fù)的數(shù)據(jù)庫名稱