Allow interval per source to be overwritten to 0 to skip the source in this interval.

This change allows to overwrite an interval to 0 for a specific source in order to skip it for this interval.
This is useful if you have default intervals configured and you would like to skip certain sources for specific intervals.
This commit is contained in:
skybeam 2023-01-14 21:57:24 +00:00
parent b50b3f64dc
commit cdd34a3416

View file

@ -765,7 +765,7 @@ while [ "${source_no}" -lt "${no_sources}" ]; do
oldest_bak=$(ls -${TSORT}1r | grep "^${INTERVAL}\\." | head -n 1 || \ oldest_bak=$(ls -${TSORT}1r | grep "^${INTERVAL}\\." | head -n 1 || \
_exit_err "Listing oldest backup failed") _exit_err "Listing oldest backup failed")
_techo "Using ${oldest_bak} for destination dir ${destination_dir}" _techo "Using ${oldest_bak} for destination dir ${destination_dir}"
if mv "${oldest_bak}" "${destination_dir}"; then if mv "${oldest_bak}" "${destination_dir}" 2>/dev/null; then
# Touch dest dir so it is not sorted wrong in listings below. # Touch dest dir so it is not sorted wrong in listings below.
ls_rm_exclude=$(basename "${destination_dir}") ls_rm_exclude=$(basename "${destination_dir}")
@ -779,7 +779,7 @@ while [ "${source_no}" -lt "${no_sources}" ]; do
if [ "${remove}" -gt 0 ]; then if [ "${remove}" -gt 0 ]; then
_techo "Removing ${remove} backup(s)..." _techo "Removing ${remove} backup(s)..."
if [ -z "${ls_rm_exclude}" ]; then if [ -z "${ls_rm_exclude}" -o ${c_interval} -le 0 ]; then
# shellcheck disable=SC2010 # shellcheck disable=SC2010
ls -${TSORT}1r | grep "^${INTERVAL}\\." | head -n "${remove}" > "${TMP}" || \ ls -${TSORT}1r | grep "^${INTERVAL}\\." | head -n "${remove}" > "${TMP}" || \
_exit_err "Listing old backups failed" _exit_err "Listing old backups failed"
@ -793,6 +793,14 @@ while [ "${source_no}" -lt "${no_sources}" ]; do
fi fi
fi fi
#
# Skip backup of this source if interval is zero.
#
if [ ${c_interval} -le 0 ]; then
_techo "Skipping backup for this interval."
exit 0
fi
# #
# Check for backup directory to clone from: Always clone from the latest one! # Check for backup directory to clone from: Always clone from the latest one!
# Exclude destination_dir from listing, it can be touched reused and renamed # Exclude destination_dir from listing, it can be touched reused and renamed