#!/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