mirror of
https://github.com/tiredofit/docker-db-backup.git
synced 2025-12-21 13:23:12 +01:00
Use alternate cron
This commit is contained in:
@@ -22,9 +22,10 @@ if [[ "${MODE,,}" =~ "standalone" ]] || [ "${MODE,,}" = "manual" ] || [ "${1,,}"
|
|||||||
backup_job_backup_begin=+0
|
backup_job_backup_begin=+0
|
||||||
else
|
else
|
||||||
silent sleep {{BACKUP_NUMBER}}
|
silent sleep {{BACKUP_NUMBER}}
|
||||||
|
set -x
|
||||||
time_last_run=0
|
time_last_run=0
|
||||||
time_current=$(date +'%s')
|
time_current=$(date +'%s')
|
||||||
|
set +x
|
||||||
if [[ "${backup_job_backup_begin}" =~ ^\+(.*)$ ]]; then
|
if [[ "${backup_job_backup_begin}" =~ ^\+(.*)$ ]]; then
|
||||||
print_debug "BACKUP_BEGIN is a jump of minute starting with +"
|
print_debug "BACKUP_BEGIN is a jump of minute starting with +"
|
||||||
timer plusvalue
|
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 # Allow slashes, yet not supporting advanced cron yet
|
||||||
elif echo "${backup_job_backup_begin//\*/#}" | grep -qP "^(((\d+,)+\d+|(\d+(\/|-)\d+)|\d+|#) ?){5}$" ; then
|
elif echo "${backup_job_backup_begin//\*/#}" | grep -qP "^(((\d+,)+\d+|(\d+(\/|-)\d+)|\d+|#) ?){5}$" ; then
|
||||||
print_debug "BACKUP_BEGIN is a cron expression"
|
print_debug "BACKUP_BEGIN is a cron expression"
|
||||||
time_last_run=$(date +"%s")
|
if var_false "${CRON_ALTERNATE}"; then
|
||||||
backup_job_backup_begin=${backup_job_backup_begin//\"/}
|
time_last_run=$(date +"%s")
|
||||||
backup_job_backup_begin=${backup_job_backup_begin//\'/}
|
|
||||||
timer cron "${backup_job_backup_begin}" "${time_current}" "${time_last_run}"
|
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
|
else
|
||||||
print_error "_BACKUP_BEGIN is invalid - Unable to perform scheduling"
|
print_error "_BACKUP_BEGIN is invalid - Unable to perform scheduling"
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
#!/command/with-contenv bash
|
#!/command/with-contenv bash
|
||||||
|
|
||||||
BACKUP_JOB_CONCURRENCY=${BACKUP_JOB_CONCURRENCY:-"1"}
|
BACKUP_JOB_CONCURRENCY=${BACKUP_JOB_CONCURRENCY:-"1"}
|
||||||
|
CRON_ALTERNATE=${CRON_ALTERNATE:-"TRUE"}
|
||||||
DBBACKUP_USER=${DBBACKUP_USER:-"dbbackup"}
|
DBBACKUP_USER=${DBBACKUP_USER:-"dbbackup"}
|
||||||
DBBACKUP_GROUP=${DBBACKUP_GROUP:-"${DBBACKUP_USER}"} # Must go after DBBACKUP_USER
|
DBBACKUP_GROUP=${DBBACKUP_GROUP:-"${DBBACKUP_USER}"} # Must go after DBBACKUP_USER
|
||||||
DEFAULT_BACKUP_BEGIN=${DEFAULT_BACKUP_BEGIN:-+0}
|
DEFAULT_BACKUP_BEGIN=${DEFAULT_BACKUP_BEGIN:-+0}
|
||||||
|
|||||||
@@ -1882,12 +1882,12 @@ timer() {
|
|||||||
local cron_compare_difference=$(( cron_compare - ${4} ))
|
local cron_compare_difference=$(( cron_compare - ${4} ))
|
||||||
|
|
||||||
if [ "${cron_compare_difference}" -lt 60 ]; then
|
if [ "${cron_compare_difference}" -lt 60 ]; then
|
||||||
cron_compare=$((${cron_compare} + $(( 60 - cron_compare_difference )) ))
|
cron_compare=$((cron_compare + $(( 60 - cron_compare_difference )) ))
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local cron_current_seconds="$(date --date=@"${cron_compare_seconds}" +"%-S")"
|
local cron_current_seconds="$(date --date=@"${cron_compare_seconds}" +"%-S")"
|
||||||
if [ "${cron_current_seconds}" -ne 0 ]; then
|
if [ "${cron_current_seconds}" -ne 0 ]; then
|
||||||
cron_compare_seconds=$(( cron_compare_seconds - cron_current_seconds ))
|
cron_compare=$(( cron_compare_seconds - cron_current_seconds ))
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local cron_minute="$(echo -n "${2}" | awk '{print $1}')"
|
local cron_minute="$(echo -n "${2}" | awk '{print $1}')"
|
||||||
@@ -1926,6 +1926,7 @@ timer() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
cron_next_hour="${cron_next}"
|
cron_next_hour="${cron_next}"
|
||||||
|
cron_next_minute=0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
print_debug "[timer] [cron] Parse Day of Week"
|
print_debug "[timer] [cron] Parse Day of Week"
|
||||||
|
|||||||
Reference in New Issue
Block a user