Files
hermes-config/scripts/snapshot_hermes_db.sh

27 lines
722 B
Bash
Executable File

#!/bin/bash
# Daily snapshot of Hermes SQLite databases for disaster recovery
# Copies memory_store.db and state.db to ~/.hermes/backups/ with timestamps
# Manages retention: keeps last 30 days
HERMES_HOME="${HERMES_HOME:-$HOME/.hermes}"
BACKUP_DIR="$HERMES_HOME/backups"
RETENTION_DAYS=30
mkdir -p "$BACKUP_DIR"
DATE=$(date +%Y%m%d_%H%M%S)
for db in memory_store.db state.db; do
SRC="$HERMES_HOME/$db"
if [ -f "$SRC" ]; then
cp "$SRC" "$BACKUP_DIR/${db%.db}_${DATE}.db"
echo "backed up $db"
else
echo "skipping $db (not found)"
fi
done
# Prune backups older than RETENTION_DAYS
find "$BACKUP_DIR" -name '*.db' -type f -mtime +$RETENTION_DAYS -delete 2>/dev/null
echo "snapshot complete: $(date)"