38 lines
822 B
Bash
Executable File
38 lines
822 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
WORKING_DIR="/home/admin/atom.town" # todo: better
|
|
LOG_FILE="/var/log/volume-backup.log"
|
|
|
|
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() {
|
|
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"
|
|
|
|
if [[ "$MODE" == "cold" ]]; then
|
|
log "stopping docker services"
|
|
docker compose stop
|
|
fi
|
|
|
|
log "running backup"
|
|
/usr/local/bin/vykar backup 2>&1 | tee -a "$LOG_FILE"
|