用shell脚本实现MongoDB数据库自动备份
一、創建MongoDB備份目錄
用來存放數據
mkdir?-p?/data/mongodb_bak/mongodb_bak_list
二、創建MongoDB數據庫備份腳本
?
#!/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"????#最終保存的數據庫備份文件?
?
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
?
給腳本加執行權限
[root@server1 mongodb_bak]# chmod +x MongoDB_bak.sh?
三、測試
運行腳本
[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的!
?
四、添加定時任務
[root@server1 ~]# crontab -e
35 21 * * * /data/mongodb_bak/MongoDB_bak.sh???#每天18:00執行MongoDB數據庫備份腳本
轉載于:https://www.cnblogs.com/ExMan/p/10906863.html
總結
以上是生活随笔為你收集整理的用shell脚本实现MongoDB数据库自动备份的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: synchronized,Reentra
- 下一篇: Python笔记(6)-输入输出