From d58b27d5ef8ca46e83c53e706abfd04689f17575 Mon Sep 17 00:00:00 2001 From: Dave Conroy Date: Sun, 3 Dec 2023 22:04:12 -0800 Subject: [PATCH] Use alternate cron --- install/assets/dbbackup/template-dbbackup/run | 19 ++++++++++++++----- install/assets/defaults/10-db-backup | 1 + install/assets/functions/10-db-backup | 5 +++-- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/install/assets/dbbackup/template-dbbackup/run b/install/assets/dbbackup/template-dbbackup/run index a02c6b9..39f2a1b 100755 --- a/install/assets/dbbackup/template-dbbackup/run +++ b/install/assets/dbbackup/template-dbbackup/run @@ -22,9 +22,10 @@ if [[ "${MODE,,}" =~ "standalone" ]] || [ "${MODE,,}" = "manual" ] || [ "${1,,}" backup_job_backup_begin=+0 else silent sleep {{BACKUP_NUMBER}} + set -x time_last_run=0 time_current=$(date +'%s') - + set +x if [[ "${backup_job_backup_begin}" =~ ^\+(.*)$ ]]; then print_debug "BACKUP_BEGIN is a jump of minute starting with +" timer plusvalue @@ -37,10 +38,18 @@ else #elif echo "${backup_job_backup_begin//\*/#}" | grep -qP "^(.*((\d+,)+\d+|(\d+(\/|-)\d+)|\d+|#) ?){5}$" ; then # Allow slashes, yet not supporting advanced cron yet elif echo "${backup_job_backup_begin//\*/#}" | grep -qP "^(((\d+,)+\d+|(\d+(\/|-)\d+)|\d+|#) ?){5}$" ; then print_debug "BACKUP_BEGIN is a cron expression" - time_last_run=$(date +"%s") - backup_job_backup_begin=${backup_job_backup_begin//\"/} - backup_job_backup_begin=${backup_job_backup_begin//\'/} - timer cron "${backup_job_backup_begin}" "${time_current}" "${time_last_run}" + if var_false "${CRON_ALTERNATE}"; then + time_last_run=$(date +"%s") + + backup_job_backup_begin=${backup_job_backup_begin//\"/} + backup_job_backup_begin=${backup_job_backup_begin//\'/} + timer cron "${backup_job_backup_begin}" "${time_current}" "${time_last_run}" + else + echo "${backup_job_backup_begin} /var/run/s6/legacy-services/dbbackup-{{BACKUP_NUMBER}} now" > /tmp/.container/cron/{{BACKUP_NUMBER}}-backup + crontab -l | { cat; echo "${backup_job_backup_begin} /var/run/s6/legacy-services/dbbackup-{{BACKUP_NUMBER}} now"; } | crontab - + s6-svc -d /var/run/s6/legacy-services/dbbackup-{{BACKUP_NUMBER}} + exit 0 + fi else print_error "_BACKUP_BEGIN is invalid - Unable to perform scheduling" cat <