From f6cfb706dac62f7e57d70858686b849936d2ea68 Mon Sep 17 00:00:00 2001 From: futile Date: Sat, 25 Jul 2026 21:31:15 +0100 Subject: [PATCH] sometimes do hot backups --- docs/backups.md | 3 ++- scripts/volume-backup.sh | 21 ++++++++++++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/docs/backups.md b/docs/backups.md index 5765930..0711e2b 100644 --- a/docs/backups.md +++ b/docs/backups.md @@ -11,7 +11,8 @@ always remember to `docker compose stop` before doing any of this! - to back up automatically, run `sudo EDITOR=micro crontab -e` and add the following: ``` TZ=UTC - 0 6 * * * /home/admin/atom.town/scripts/volume-backup.sh + 0 6 * * * /home/admin/atom.town/scripts/volume-backup.sh cold + 0 0,12,18 * * * /home/admin/atom.town/scripts/volume-backup.sh hot ``` **restoring** diff --git a/scripts/volume-backup.sh b/scripts/volume-backup.sh index 929d98d..49e3bce 100755 --- a/scripts/volume-backup.sh +++ b/scripts/volume-backup.sh @@ -8,19 +8,30 @@ function log() { echo "[$(date -Iseconds)] $*" | tee -a "$LOG_FILE" } +MODE="${1:-cold}" +if [[ "$MODE" != "cold" && "$MODE" != "hot" ]]; then + log "usage: $0 [cold|hot]" >&2 + exit 1 +fi + function cleanup() { - log "cleanup: starting docker services" - docker compose start || true + if [[ "$MODE" == "cold" ]]; then + log "starting docker services" + docker compose start || true + fi log "└───── backup finished ─────┘" } trap cleanup EXIT log "┌────── backup started ─────┐" +log "mode: $MODE" cd "$WORKING_DIR" -log "stopping docker services" -docker compose stop +if [[ "$MODE" == "cold" ]]; then + log "stopping docker services" + docker compose stop +fi log "running backup" -/usr/local/bin/vykar backup +/usr/local/bin/vykar backup 2>&1 | tee -a "$LOG_FILE"