Ctrl K
ComunidadGuías…

backup/entrypoint.sh

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
#!/bin/sh
# Backup sidecar entrypoint.
#  - With args:  exec them   (one-off, e.g. `docker compose run --rm backup /scripts/backup.sh`)
#  - No args:    run the daily backup scheduler loop (long-running service mode)
#
# Non-root, no cron daemon: a simple wall-clock poll fires backup.sh once per day at
# BACKUP_HOUR:BACKUP_MINUTE (UTC). Avoids per-arch cron binaries and root requirements.
set -eu

if [ "$#" -gt 0 ]; then
  exec "$@"
fi

: "${BACKUP_HOUR:=3}"
: "${BACKUP_MINUTE:=30}"
target=$(printf '%02d:%02d' "$BACKUP_HOUR" "$BACKUP_MINUTE")

log() { printf '{"ts":"%s","svc":"backup","level":"info","msg":"%s"}\n' "$(date -u +%FT%TZ)" "$1"; }
log "scheduler.start daily_at_utc=$target"

last=""
while true; do
  now=$(date -u +%H:%M)
  today=$(date -u +%F)
  if [ "$now" = "$target" ] && [ "$last" != "$today" ]; then
    last="$today"
    log "scheduler.trigger"
    /scripts/backup.sh || log "scheduler.backup_failed"
  fi
  sleep 30
done