【MongoDB】docker mongo 数据备份
生活随笔
收集整理的這篇文章主要介紹了
【MongoDB】docker mongo 数据备份
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 備份腳本 mongobk.sh
- 定時任務 crontab
備份腳本 mongobk.sh
$ cat mongobk.sh#!/bin/sh # dump 命令執行路徑,根據mongodb安裝路徑而定 # mongo的容器名稱 MONGODB_CONTAINER_NAME=yapi_mongodb DUMP="docker exec -it ${MONGODB_CONTAINER_NAME} " # 臨時備份路徑(注:docker 容器內的路徑) OUT_DIR=/dump/tmp # 壓縮后的備份存放路徑(注:docker 容器內的路徑) TAR_DIR=/dump/list # 當前系統時間 DATE=`date +%Y%m%d%H%M` # 數據庫賬號 DB_USER=user # 數據庫密碼 DB_PASS=password # 數據庫名稱,多個用空格隔開 DB_NAME_ARR=("yapi") # 代表刪除7天前的備份,即只保留近 7 天的備份 DAYS=7# 最終保存的數據庫備份文件 for DBNAME in ${DB_NAME_ARR[@]} do# 刪除臨時目錄內容rm -rf $OUT_DIR/*# 文件名稱:數據庫名_時間FILE_NAME="${DBNAME}_${DATE}"# 導出數據的臨時目錄TARGET_DIR="$OUT_DIR/$FILE_NAME"mkdir -p $TARGET_DIR# 臨時目錄打包壓縮后的文件TARGZ_FILE="${FILE_NAME}.tar.gz"# 存放壓縮后文件的目錄TARGET_FILE="$TAR_DIR/$TARGZ_FILE"# 執行導出命令# $DUMP -h 127.0.0.1:27017 -u $DB_USER -p $DB_PASS -d $DBNAME -o $OUT_DIR/$DATE$DUMP mongodump -h 127.0.0.1:27017 -d $DBNAME -o $TARGET_DIR# 判斷導出結果flag=`echo $?`if [ $flag == "0" ];thenecho "database $DBNAME success backup to $TARGET_DIR"elseecho "database $DBNAME backup fail!"fi# 壓縮格式為 .tar.gz 格式# -P tar 默認采用相對路徑壓縮打包,需要(-P)允許使用絕對路徑 # -v 輸出 verbose 日志$DUMP tar -zcPf $TARGET_FILE $TARGET_DIR/$DBNAME# 將容器內的壓縮文件,復制到宿主機與備份腳本同級的dump目錄下docker cp ${MONGODB_CONTAINER_NAME}:$TARGET_FILE $PWD/dump# echo "docker cp ${MONGODB_CONTAINER_NAME}:$TARGET_FILE $PWD/dump"done# 刪除 $DAYS 天前的備份文件 find $PWD/dump -mtime +$DAYS -delete定時任務 crontab
$ cat /etc/crontab 0 0 */3 * * root bash mongobk.sh >> /var/log/mongo/bk.log總結
以上是生活随笔為你收集整理的【MongoDB】docker mongo 数据备份的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Linux 】使用 Shell 批量重
- 下一篇: 【Laravel】Fatal error