Jambase aufgeräumt und Backup script
This commit is contained in:
Executable
+46
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
||||
BACKUP_DIR="${BACKUP_DIR:-${PROJECT_DIR}/backups}"
|
||||
|
||||
if [[ ! -f "${PROJECT_DIR}/.env" ]]; then
|
||||
echo ".env wurde in ${PROJECT_DIR} nicht gefunden." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
read_env_value() {
|
||||
local key="$1"
|
||||
local line
|
||||
|
||||
line="$(grep -E "^${key}=" "${PROJECT_DIR}/.env" | tail -n 1 || true)"
|
||||
if [[ -z "${line}" ]]; then
|
||||
echo "Wert ${key} wurde in ${PROJECT_DIR}/.env nicht gefunden." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
printf '%s' "${line#*=}"
|
||||
}
|
||||
|
||||
DB_NAME="$(read_env_value DB_NAME)"
|
||||
DB_USER="$(read_env_value DB_USER)"
|
||||
DB_PASSWORD="$(read_env_value DB_PASSWORD)"
|
||||
TIMESTAMP="$(date +%Y%m%d-%H%M%S)"
|
||||
BACKUP_FILE="${BACKUP_DIR}/eventlens-${DB_NAME}-${TIMESTAMP}.sql.gz"
|
||||
|
||||
mkdir -p "${BACKUP_DIR}"
|
||||
|
||||
docker compose -f "${PROJECT_DIR}/docker-compose.yml" exec -T db \
|
||||
mariadb-dump \
|
||||
--single-transaction \
|
||||
--quick \
|
||||
--routines \
|
||||
--triggers \
|
||||
-u"${DB_USER}" \
|
||||
"-p${DB_PASSWORD}" \
|
||||
"${DB_NAME}" \
|
||||
| gzip -c > "${BACKUP_FILE}"
|
||||
|
||||
echo "Backup erstellt: ${BACKUP_FILE}"
|
||||
Reference in New Issue
Block a user