sub-aligator/scripts/backup.sh

32 lines
823 B
Bash
Executable file

#!/usr/bin/env bash
set -euo pipefail
# Skript vytvoří konzistentní SQLite backup přes sqlite3 .backup příkaz.
# Nepoužívejte obyčejný cp pro běžící SQLite databázi.
DATA_DIR="${DATA_DIR:-./data}"
BACKUP_DIR="${BACKUP_DIR:-./backups}"
DB_NAME="${DB_NAME:-subnet-allocator.db}"
DB_PATH="${DATA_DIR}/${DB_NAME}"
if ! command -v sqlite3 >/dev/null 2>&1; then
echo "ERROR: sqlite3 není nainstalováno." >&2
exit 1
fi
if [ ! -f "$DB_PATH" ]; then
echo "ERROR: Databáze neexistuje: $DB_PATH" >&2
exit 1
fi
mkdir -p "$BACKUP_DIR"
TIMESTAMP=$(date -u +"%Y%m%dT%H%M%SZ")
BACKUP_FILE="${BACKUP_DIR}/${DB_NAME}.${TIMESTAMP}.backup"
echo "Vytvářím konzistentní backup: $BACKUP_FILE"
sqlite3 "$DB_PATH" ".backup '${BACKUP_FILE}'"
echo "Backup dokončen: $BACKUP_FILE"
ls -lh "$BACKUP_FILE"