日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【MongoDB】docker mongo 数据备份

發布時間:2025/3/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【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 数据备份的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。