From de720ecfe9a71bd2fad3e5ef429629007e8ea6ed Mon Sep 17 00:00:00 2001 From: Darko Poljak Date: Thu, 17 Oct 2019 11:53:46 +0200 Subject: [PATCH] If renaming oldest bak dir fails then fallback to removing it --- ccollect | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/ccollect b/ccollect index f5aa145..b8011ba 100755 --- a/ccollect +++ b/ccollect @@ -734,14 +734,17 @@ while [ "${source_no}" -lt "${no_sources}" ]; do oldest_bak=$(ls -${TSORT}1r | grep "^${INTERVAL}\\." | head -n 1 || \ _exit_err "Listing oldest backup failed") _techo "Using ${oldest_bak} for destination dir ${destination_dir}" - mv "${oldest_bak}" "${destination_dir}" || - _exit_err "Moving oldest backup ${oldest_bak} to ${destination_dir} failed." - # Touch dest dir so it is not sorted wrong in listings below. - touch "${destination_dir}" + if mv "${oldest_bak}" "${destination_dir}"; then + # Touch dest dir so it is not sorted wrong in listings below. + touch "${destination_dir}" - # We have something to remove only if count > interval. - if [ "${count}" -gt "${c_interval}" ]; then + # We have something to remove only if count > interval. remove="$((${count} - ${c_interval}))" + else + _techo_err "Renaming oldest backup ${oldest_bak} to ${destination_dir} failed, removing it." + remove="$((${count} - ${c_interval} + 1))" + fi + if [ "${remove}" -gt 0 ]; then _techo "Removing ${remove} backup(s)..." ls -${TSORT}1r | grep "^${INTERVAL}\\." | head -n "${remove}" > "${TMP}" || \