Merge branch 'develop'
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -43,7 +43,8 @@ mongo-volume
|
|||||||
mongo-volume-backup-*.tar.gz
|
mongo-volume-backup-*.tar.gz
|
||||||
|
|
||||||
# backups directory for mongo-volume tarballs
|
# backups directory for mongo-volume tarballs
|
||||||
/backups/
|
backups/
|
||||||
|
mongo-backup/
|
||||||
|
|
||||||
# Serena AI assistant
|
# Serena AI assistant
|
||||||
.serena/
|
.serena/
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ The project includes multiple backup strategies for different deployment scenari
|
|||||||
- `db-backup--standalone.sh` - Creates offline backup of the complete mongo-volume directory
|
- `db-backup--standalone.sh` - Creates offline backup of the complete mongo-volume directory
|
||||||
- Database container is stopped during backup for consistency
|
- Database container is stopped during backup for consistency
|
||||||
- Backs up the entire MongoDB data directory
|
- Backs up the entire MongoDB data directory
|
||||||
- Output: `./backups/mongo-volume-backup-YYYY-MM-DD-HH-MM.tar.gz`
|
- Output: `./mongo-backup/mongo-volume-backup-YYYY-MM-DD-HH-MM.tar.gz`
|
||||||
- Default retention: 7 backups (configurable via `KEEP` env var)
|
- Default retention: 7 backups (configurable via `KEEP` env var)
|
||||||
- Usage: `./db-backup--standalone.sh` or `KEEP=2 ./db-backup--standalone.sh`
|
- Usage: `./db-backup--standalone.sh` or `KEEP=2 ./db-backup--standalone.sh`
|
||||||
|
|
||||||
@@ -50,7 +50,7 @@ The project includes multiple backup strategies for different deployment scenari
|
|||||||
|
|
||||||
- `db-backup--swarm.sh` - Creates offline backup by scaling down the MongoDB service
|
- `db-backup--swarm.sh` - Creates offline backup by scaling down the MongoDB service
|
||||||
- Service is scaled to 0 during backup
|
- Service is scaled to 0 during backup
|
||||||
- Output: `./backups/mongo-volume-backup-YYYY-MM-DD-HH-MM.tar.gz`
|
- Output: `./mongo-backup/mongo-volume-backup-YYYY-MM-DD-HH-MM.tar.gz`
|
||||||
- Usage: `./db-backup--swarm.sh`
|
- Usage: `./db-backup--swarm.sh`
|
||||||
|
|
||||||
- `db-restore-from-backup--swarm.sh` - Restores volume backup by scaling down the service
|
- `db-restore-from-backup--swarm.sh` - Restores volume backup by scaling down the service
|
||||||
@@ -75,13 +75,13 @@ Backups run automatically via cron at 04:00 every day:
|
|||||||
- **Monday-Saturday**: Online database dumps without downtime (keeps 7 days of incremental backups)
|
- **Monday-Saturday**: Online database dumps without downtime (keeps 7 days of incremental backups)
|
||||||
|
|
||||||
All backup operations are logged with timestamps:
|
All backup operations are logged with timestamps:
|
||||||
- Volume backups: `./backups/db-backup-standalone.log`
|
- Volume backups: `./mongo-backup/db-backup-standalone.log`
|
||||||
- Database dumps: `./mongo-backup/db-dump-db-standalone.log`
|
- Database dumps: `./mongo-backup/db-dump-db-standalone.log`
|
||||||
- Restore operations: `./mongo-backup/db-restore-from-dump.log`
|
- Restore operations: `./mongo-backup/db-restore-from-dump.log`
|
||||||
|
|
||||||
## Backup Directories
|
## Backup Directories
|
||||||
|
|
||||||
- `./backups/` - Volume backup archives (full mongo-volume directory)
|
- `./mongo-backup/` - Volume backup archives (full mongo-volume directory)
|
||||||
- `./mongo-backup/` - Database dump archives (utility-bills database only)
|
- `./mongo-backup/` - Database dump archives (utility-bills database only)
|
||||||
|
|
||||||
Both directories are excluded from git via `.gitignore`.
|
Both directories are excluded from git via `.gitignore`.
|
||||||
|
|||||||
@@ -21,9 +21,9 @@ set -euo pipefail
|
|||||||
# - Creates compressed tarball (.tar.gz) of the volume
|
# - Creates compressed tarball (.tar.gz) of the volume
|
||||||
#
|
#
|
||||||
# OUTPUT:
|
# OUTPUT:
|
||||||
# - Backup files stored in: ./backups/
|
# - Backup files stored in: ./mongo-backup/
|
||||||
# - Filename format: mongo-volume-backup-YYYY-MM-DD-HH-MM.tar.gz
|
# - Filename format: mongo-volume-backup-YYYY-MM-DD-HH-MM.tar.gz
|
||||||
# - Log file: ./backups/db-backup-standalone.log
|
# - Log file: ./mongo-backup/db-backup-standalone.log
|
||||||
# - Automatic rotation: keeps newest 7 backups (configurable via KEEP env var)
|
# - Automatic rotation: keeps newest 7 backups (configurable via KEEP env var)
|
||||||
#
|
#
|
||||||
# USAGE:
|
# USAGE:
|
||||||
@@ -37,8 +37,10 @@ set -euo pipefail
|
|||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
|
|
||||||
# Configuration
|
# Configuration
|
||||||
|
BACKUP_DIR="${BACKUP_DIR:-$SCRIPT_DIR/mongo-backup}"
|
||||||
|
|
||||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
LOG_FILE="$SCRIPT_DIR/backups/db-backup-standalone.log"
|
LOG_FILE="$BACKUP_DIR/db-backup-standalone.log"
|
||||||
MONGO_SERVICE="mongo"
|
MONGO_SERVICE="mongo"
|
||||||
COMPOSE_FILE="$SCRIPT_DIR/docker-compose-standalone.yaml"
|
COMPOSE_FILE="$SCRIPT_DIR/docker-compose-standalone.yaml"
|
||||||
|
|
||||||
@@ -60,7 +62,6 @@ docker compose -f "$COMPOSE_FILE" stop "$MONGO_SERVICE"
|
|||||||
TIMESTAMP=$(date +"%Y-%m-%d-%H-%M")
|
TIMESTAMP=$(date +"%Y-%m-%d-%H-%M")
|
||||||
|
|
||||||
# backup directory and retention (can be overridden via env)
|
# backup directory and retention (can be overridden via env)
|
||||||
BACKUP_DIR="${BACKUP_DIR:-$SCRIPT_DIR/backups}"
|
|
||||||
KEEP="${KEEP:-7}"
|
KEEP="${KEEP:-7}"
|
||||||
|
|
||||||
mkdir -p "$BACKUP_DIR"
|
mkdir -p "$BACKUP_DIR"
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ set -euo pipefail
|
|||||||
# - Creates compressed tarball (.tar.gz) of the volume
|
# - Creates compressed tarball (.tar.gz) of the volume
|
||||||
#
|
#
|
||||||
# OUTPUT:
|
# OUTPUT:
|
||||||
# - Backup files stored in: ./backups/
|
# - Backup files stored in: ./mongo-backup/
|
||||||
# - Filename format: mongo-volume-backup-YYYY-MM-DD-HH-MM.tar.gz
|
# - Filename format: mongo-volume-backup-YYYY-MM-DD-HH-MM.tar.gz
|
||||||
# - Automatic rotation: keeps newest 7 backups (configurable via KEEP env var)
|
# - Automatic rotation: keeps newest 7 backups (configurable via KEEP env var)
|
||||||
#
|
#
|
||||||
@@ -45,7 +45,7 @@ docker service scale "$MONGO_SERVICE"=0
|
|||||||
TIMESTAMP=$(date +"%Y-%m-%d-%H-%M")
|
TIMESTAMP=$(date +"%Y-%m-%d-%H-%M")
|
||||||
|
|
||||||
# backup directory and retention (can be overridden via env)
|
# backup directory and retention (can be overridden via env)
|
||||||
BACKUP_DIR="${BACKUP_DIR:-backups}"
|
BACKUP_DIR="${BACKUP_DIR:-mongo-backup}"
|
||||||
KEEP="${KEEP:-7}"
|
KEEP="${KEEP:-7}"
|
||||||
|
|
||||||
mkdir -p "$BACKUP_DIR"
|
mkdir -p "$BACKUP_DIR"
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ set -euo pipefail
|
|||||||
#
|
#
|
||||||
# INPUT:
|
# INPUT:
|
||||||
# - Requires backup filename as parameter
|
# - Requires backup filename as parameter
|
||||||
# - Looks for file in: ./backups/
|
# - Looks for file in: ./mongo-backup/
|
||||||
# - Optional: --pre-backup flag to create safety backup before restore
|
# - Optional: --pre-backup flag to create safety backup before restore
|
||||||
#
|
#
|
||||||
# USAGE:
|
# USAGE:
|
||||||
@@ -72,10 +72,10 @@ if [ -z "${TIMESTAMP:-}" ]; then
|
|||||||
echo " --do-pre-backup=false Skip interactive prompt, no pre-restore backup"
|
echo " --do-pre-backup=false Skip interactive prompt, no pre-restore backup"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Available backups:"
|
echo "Available backups:"
|
||||||
ls -1t backups/mongo-volume-backup-*.tar.gz 2>/dev/null | sed 's/.*mongo-volume-backup-\(.*\)\.tar\.gz/ \1/' || echo " No backups found"
|
ls -1t mongo-backup/mongo-volume-backup-*.tar.gz 2>/dev/null | sed 's/.*mongo-volume-backup-\(.*\)\.tar\.gz/ \1/' || echo " No backups found"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
BACKUP_DIR="${BACKUP_DIR:-backups}"
|
BACKUP_DIR="${BACKUP_DIR:-mongo-backup}"
|
||||||
BACKUP_FILE="$BACKUP_DIR/mongo-volume-backup-$TIMESTAMP.tar.gz"
|
BACKUP_FILE="$BACKUP_DIR/mongo-volume-backup-$TIMESTAMP.tar.gz"
|
||||||
|
|
||||||
# Check if backup file exists
|
# Check if backup file exists
|
||||||
|
|||||||
Reference in New Issue
Block a user