feat: backup cron
This commit is contained in:
+32
@@ -0,0 +1,32 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user