notebookvb

This commit is contained in:
Administrator
2026-05-23 05:39:25 +02:00
parent 36d7c43441
commit bfa049e0c2
3 changed files with 23 additions and 38 deletions
+12 -11
View File
@@ -12,6 +12,7 @@ UNRAID_NAME="tower"
BASE_PATH="/mnt/user/Backup/Critical/MongoDBBackup"
KEEP_DAYS=3
KEEP_COUNT=3 # počet posledních záloh k udržení (mimo time-based)
# Databases to back up (+ admin DB pro credentials a roles)
WHAT_TO_BACKUP=("admin" "edc")
@@ -30,31 +31,24 @@ for DB_NAME in "${WHAT_TO_BACKUP[@]}"; do
FINAL_PATH="$BASE_PATH/$UNRAID_NAME/$DB_NAME/$DATE"
mkdir -p "$FINAL_PATH"
DUMP_DIR="$FINAL_PATH/$DB_NAME"
DUMP_FILE="$FINAL_PATH/$DB_NAME.archive.gz"
ERR_FILE="$FINAL_PATH/$DB_NAME.err"
# ======================================================
# DUMP + GZIP
# DUMP + GZIP (streamuje přes stdout, nepotřebuje volume mount)
# Zachovává: indexy, metadata, validators, all collections
# ======================================================
docker exec "$CONTAINER_NAME" mongodump \
--host="$MONGO_HOST" \
--port="$MONGO_PORT" \
--db="$DB_NAME" \
--out="$DUMP_DIR" \
--archive \
--gzip \
--numParallelCollections=4 \
2> "$ERR_FILE"
> "$DUMP_FILE" 2> "$ERR_FILE"
EXIT_CODE=$?
# Compress the dump directory
if [ $EXIT_CODE -eq 0 ]; then
(cd "$FINAL_PATH" && tar -czf "$DB_NAME.archive.gz" "$DB_NAME" 2>> "$ERR_FILE")
EXIT_CODE=$?
rm -rf "$DUMP_DIR"
fi
# ======================================================
# VALIDATION
# ======================================================
@@ -73,12 +67,19 @@ for DB_NAME in "${WHAT_TO_BACKUP[@]}"; do
# ======================================================
# CLEANUP OLD BACKUPS
# 1. Smaž zálohy starší než KEEP_DAYS dnů
# 2. Z toho co zbyde, ponech jen posledních KEEP_COUNT
# ======================================================
echo "Cleaning up old backups for $DB_NAME..."
find "$BASE_PATH/$UNRAID_NAME/$DB_NAME" \
-mindepth 1 -maxdepth 1 -type d -mtime +$KEEP_DAYS \
-exec rm -rf {} \;
# Nech jen posledních KEEP_COUNT záloh
ls -td "$BASE_PATH/$UNRAID_NAME/$DB_NAME"/*/ 2>/dev/null \
| tail -n +$((KEEP_COUNT + 1)) \
| xargs -r rm -rf
done
echo "------------------------------------------"