Enhance backup scripts with error handling and directory checks

This commit is contained in:
2026-03-04 14:55:43 -05:00
parent c93dcb5daf
commit cbcb6f02a5
5 changed files with 113 additions and 19 deletions

View File

@@ -1,12 +1,29 @@
#!/usr/bin/env bash
set -euo pipefail
set -Eeuo pipefail
trap 'echo "Error on line $LINENO while writing Gitea dump" >&2' ERR
ensure_writable_dir() {
local dir="$1"
mkdir -p "$dir"
if [[ ! -d "$dir" || ! -w "$dir" ]]; then
echo "Output directory is not writable: $dir" >&2
exit 1
fi
}
TS="$(date +%F_%H%M%S)"
OUT="/srv/backups/gitea/dumps"
mkdir -p "$OUT"
ensure_writable_dir "$OUT"
artifact="$OUT/gitea-dump-$TS.zip"
docker exec gitea sh -lc "gitea dump -c /data/gitea/conf/app.ini -f /tmp/gitea-dump-$TS.zip"
docker cp "gitea:/tmp/gitea-dump-$TS.zip" "$OUT/"
docker exec gitea rm -f "/tmp/gitea-dump-$TS.zip"
echo "Wrote: $OUT/gitea-dump-$TS.zip"
if [[ ! -s "$artifact" ]]; then
echo "Backup artifact missing or empty: $artifact" >&2
exit 1
fi
echo "Wrote: $artifact"