bloombase/scripts/backup_to_nas.sh
Stephan Kerkman 42e81c3609 feat: NAS backup script for db and media volumes
Runs via Docker, rsync over SSH to 192.168.178.110.
Cron: daily at 3am.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 13:23:12 +02:00

23 lines
860 B
Bash
Executable file

#!/bin/bash
# Backs up plantdb volumes (SQLite db + media) to NAS via SSH.
# Cron: 0 3 * * * /home/stephan/stacks/plantdb/scripts/backup_to_nas.sh >> /var/log/plantdb_backup.log 2>&1
set -euo pipefail
NAS_USER="stephan"
NAS_HOST="192.168.178.110"
NAS_PATH="/share/MD0_DATA/Public/plantdb_backup"
SSH_KEY="/home/stephan/.ssh/plantdb_backup"
docker run --rm \
-v plantdb_db:/data/db:ro \
-v plantdb_media:/data/media:ro \
-v "${SSH_KEY}:/root/.ssh/id_ed25519:ro" \
alpine sh -c "
apk add --no-cache rsync openssh-client -q 2>/dev/null
mkdir -p /root/.ssh
ssh-keyscan -H ${NAS_HOST} > /root/.ssh/known_hosts 2>/dev/null
rsync -av --delete /data/db/ ${NAS_USER}@${NAS_HOST}:${NAS_PATH}/db/
rsync -av --delete /data/media/ ${NAS_USER}@${NAS_HOST}:${NAS_PATH}/media/
"
echo "[$(date '+%Y-%m-%d %H:%M:%S')] plantdb backup complete"