fix(release): publish monthly backup marker after successful copy
This commit is contained in:
+20
-8
@@ -525,12 +525,14 @@ apply_backup_retention() {
|
||||
return 1
|
||||
fi
|
||||
|
||||
local month monthly_root monthly_dir
|
||||
local month monthly_root monthly_dir complete_tmp
|
||||
month="$(TZ="$timezone" date +%Y-%m)"
|
||||
monthly_root="$BACKUP_DIR/monthly"
|
||||
monthly_dir="$monthly_root/$month"
|
||||
mkdir -p "$monthly_root"
|
||||
chmod 700 "$monthly_root"
|
||||
if ! mkdir -p "$monthly_root" || ! chmod 700 "$monthly_root"; then
|
||||
echo "Could not prepare monthly backup directory. Aborting deploy."
|
||||
return 1
|
||||
fi
|
||||
|
||||
local current_files=("$BACKUP_DIR"/jobtracker-*"-$BACKUP_STAMP".*)
|
||||
if [ ! -e "${current_files[0]}" ]; then
|
||||
@@ -539,11 +541,21 @@ apply_backup_retention() {
|
||||
fi
|
||||
|
||||
if [ ! -f "$monthly_dir/.complete" ]; then
|
||||
mkdir -p "$monthly_dir"
|
||||
chmod 700 "$monthly_dir"
|
||||
cp --preserve=mode,timestamps -- "${current_files[@]}" "$monthly_dir/"
|
||||
printf '%s\n' "$BACKUP_STAMP" > "$monthly_dir/.complete"
|
||||
chmod 600 "$monthly_dir/.complete"
|
||||
if ! mkdir -p "$monthly_dir" || ! chmod 700 "$monthly_dir" ||
|
||||
! cp --preserve=mode,timestamps -- "${current_files[@]}" "$monthly_dir/"; then
|
||||
echo "Could not retain monthly recovery files. Aborting deploy."
|
||||
return 1
|
||||
fi
|
||||
if ! complete_tmp="$(mktemp "$monthly_dir/.complete.XXXXXX")"; then
|
||||
echo "Could not create monthly recovery marker. Aborting deploy."
|
||||
return 1
|
||||
fi
|
||||
if ! printf '%s\n' "$BACKUP_STAMP" > "$complete_tmp" ||
|
||||
! mv -T -- "$complete_tmp" "$monthly_dir/.complete"; then
|
||||
rm -f -- "$complete_tmp"
|
||||
echo "Could not publish monthly recovery marker. Aborting deploy."
|
||||
return 1
|
||||
fi
|
||||
echo "Monthly recovery set retained: ${monthly_dir}"
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user