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
|
||||
|
||||
# backups directory for mongo-volume tarballs
|
||||
/backups/
|
||||
backups/
|
||||
mongo-backup/
|
||||
|
||||
# Serena AI assistant
|
||||
.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
|
||||
- Database container is stopped during backup for consistency
|
||||
- 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)
|
||||
- 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
|
||||
- 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`
|
||||
|
||||
- `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)
|
||||
|
||||
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`
|
||||
- Restore operations: `./mongo-backup/db-restore-from-dump.log`
|
||||
|
||||
## 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)
|
||||
|
||||
Both directories are excluded from git via `.gitignore`.
|
||||
|
||||
@@ -21,9 +21,9 @@ set -euo pipefail
|
||||
# - Creates compressed tarball (.tar.gz) of the volume
|
||||
#
|
||||
# OUTPUT:
|
||||
# - Backup files stored in: ./backups/
|
||||
# - Backup files stored in: ./mongo-backup/
|
||||
# - 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)
|
||||
#
|
||||
# USAGE:
|
||||
@@ -37,8 +37,10 @@ set -euo pipefail
|
||||
# ==============================================================================
|
||||
|
||||
# Configuration
|
||||
BACKUP_DIR="${BACKUP_DIR:-$SCRIPT_DIR/mongo-backup}"
|
||||
|
||||
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"
|
||||
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")
|
||||
|
||||
# backup directory and retention (can be overridden via env)
|
||||
BACKUP_DIR="${BACKUP_DIR:-$SCRIPT_DIR/backups}"
|
||||
KEEP="${KEEP:-7}"
|
||||
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
|
||||
@@ -21,7 +21,7 @@ set -euo pipefail
|
||||
# - Creates compressed tarball (.tar.gz) of the volume
|
||||
#
|
||||
# OUTPUT:
|
||||
# - Backup files stored in: ./backups/
|
||||
# - Backup files stored in: ./mongo-backup/
|
||||
# - Filename format: mongo-volume-backup-YYYY-MM-DD-HH-MM.tar.gz
|
||||
# - 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")
|
||||
|
||||
# backup directory and retention (can be overridden via env)
|
||||
BACKUP_DIR="${BACKUP_DIR:-backups}"
|
||||
BACKUP_DIR="${BACKUP_DIR:-mongo-backup}"
|
||||
KEEP="${KEEP:-7}"
|
||||
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
|
||||
@@ -22,7 +22,7 @@ set -euo pipefail
|
||||
#
|
||||
# INPUT:
|
||||
# - 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
|
||||
#
|
||||
# USAGE:
|
||||
@@ -72,10 +72,10 @@ if [ -z "${TIMESTAMP:-}" ]; then
|
||||
echo " --do-pre-backup=false Skip interactive prompt, no pre-restore backup"
|
||||
echo ""
|
||||
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
|
||||
fi
|
||||
BACKUP_DIR="${BACKUP_DIR:-backups}"
|
||||
BACKUP_DIR="${BACKUP_DIR:-mongo-backup}"
|
||||
BACKUP_FILE="$BACKUP_DIR/mongo-volume-backup-$TIMESTAMP.tar.gz"
|
||||
|
||||
# Check if backup file exists
|
||||
|
||||
Reference in New Issue
Block a user