Files
daily-meal-api/docker/database-backup/backup-cron-entrypoint
T
leonm 334d94e712
CI / 🧪 Tests Laravel (push) Successful in 2m8s
CI / 🐳 Build & Push Image (push) Successful in 35s
feat: backup cron
2026-08-13 14:20:28 +02:00

33 lines
707 B
Bash
Executable File

#!/bin/sh
set -eu
: "${BACKUP_CRON:=0 3 * * *}"
case "$BACKUP_CRON" in
*"
"*)
echo "BACKUP_CRON must contain a single cron expression." >&2
exit 1
;;
esac
cron_field_count="$(printf "%s\n" "$BACKUP_CRON" | awk '{ print NF }')"
if [ "$cron_field_count" -ne 5 ]; then
echo "BACKUP_CRON must contain exactly five fields." >&2
exit 1
fi
mkdir -p /backups
umask 077
printf "%s /usr/local/bin/backup-database scheduled >> /proc/1/fd/1 2>> /proc/1/fd/2\n" \
"$BACKUP_CRON" > /etc/crontabs/root
if [ "${BACKUP_RUN_ON_START:-false}" = "true" ]; then
/usr/local/bin/backup-database startup
fi
echo "Database backup cron configured: $BACKUP_CRON"
exec crond -f -l 2