用shell脚本实现MongoDB数据库自动备份
一、創(chuàng)建MongoDB備份目錄
用來(lái)存放數(shù)據(jù)
mkdir?-p?/data/mongodb_bak/mongodb_bak_list
二、創(chuàng)建MongoDB數(shù)據(jù)庫(kù)備份腳本
?
#!/bin/bash
#
DUMP=/usr/local/mongodb/bin/mongodump????#mongodump命令路徑
OUT_DIR=/data/mongodb_bak/mongodb_bak_now????#臨時(shí)備份目錄?
TAR_DIR=/data/mongodb_bak/mongodb_bak_list????#備份存放路徑?
DATE=`date +%Y_%m_%d`???#獲取當(dāng)前系統(tǒng)時(shí)間?
DB_USER=myadmin????#數(shù)據(jù)庫(kù)賬號(hào)?
DB_PASS=****** ???#數(shù)據(jù)庫(kù)密碼
?
DAYS=20????#DAYS=20代表刪除20天前的備份,即只保留近20天的備份
TAR_BAK="mongodb_bak_$DATE.tar.gz"????#最終保存的數(shù)據(jù)庫(kù)備份文件?
?
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???#備份全部數(shù)據(jù)庫(kù)
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE??? #壓縮為.tar.gz格式
?
find $TAR_DIR/ -mtime +$DAYS -delete?? #刪除20天前的備份文件?
exit
?
給腳本加執(zhí)行權(quán)限
[root@server1 mongodb_bak]# chmod +x MongoDB_bak.sh?
三、測(cè)試
運(yùn)行腳本
[root@server1 mongodb_bak]# sh +x MongoDB_bak.sh?
?
在目錄下查看
?
將數(shù)據(jù)恢復(fù):
[root@server1 mongodb_bak]# mongorestore -h 127.0.0.1:27017 -d cara2 /data/mongodb_bak/mongodb_bak_now/2018_07_25/cara
?
進(jìn)入數(shù)據(jù)庫(kù)查看:
?
?
數(shù)據(jù)正常,說(shuō)明備份一切都是ok的!
?
四、添加定時(shí)任務(wù)
[root@server1 ~]# crontab -e
35 21 * * * /data/mongodb_bak/MongoDB_bak.sh???#每天18:00執(zhí)行MongoDB數(shù)據(jù)庫(kù)備份腳本
轉(zhuǎn)載于:https://www.cnblogs.com/ExMan/p/10906863.html
總結(jié)
以上是生活随笔為你收集整理的用shell脚本实现MongoDB数据库自动备份的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: synchronized,Reentra
- 下一篇: mysql从zip包安装小记