32 lines
823 B
Bash
Executable file
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"
|