|
|
|
|
#!/bin/bash
|
|
|
|
|
# /root/.openclaw/workspace/scripts/10-create-backup.sh
|
|
|
|
|
# Standalone backup script (secondary to deploy.sh backup).
|
|
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
|
|
WORKSPACE="/root/.openclaw/workspace"
|
|
|
|
|
BACKUP_DIR="/root/.openclaw/workspace/backup"
|
|
|
|
|
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
|
|
|
|
|
BACKUP_PATH="$BACKUP_DIR/backup-$TIMESTAMP"
|
|
|
|
|
COLLECTION="mem0_v4_shared"
|
|
|
|
|
|
|
|
|
|
echo "Creating backup..."
|
|
|
|
|
|
|
|
|
|
mkdir -p "$BACKUP_PATH"
|
|
|
|
|
|
|
|
|
|
echo "Backing up mem0 configuration..."
|
|
|
|
|
cp -r "$WORKSPACE/skills/mem0-integration" "$BACKUP_PATH/" 2>/dev/null || true
|
|
|
|
|
|
|
|
|
|
echo "Backing up agent registry..."
|
|
|
|
|
cp "$WORKSPACE/agents.yaml" "$BACKUP_PATH/" 2>/dev/null || true
|
|
|
|
|
cp "$WORKSPACE/skills/mem0-integration/project_registry.yaml" "$BACKUP_PATH/" 2>/dev/null || true
|
|
|
|
|
|
|
|
|
|
echo "Backing up docker-compose config..."
|
|
|
|
|
cp /opt/mem0-center/docker-compose.yml "$BACKUP_PATH/" 2>/dev/null || true
|
|
|
|
|
cp /opt/mem0-center/.env "$BACKUP_PATH/" 2>/dev/null || true
|
|
|
|
|
|
|
|
|
|
echo "Creating Qdrant snapshot ($COLLECTION)..."
|
|
|
|
|
SNAPSHOT_RESPONSE=$(curl -sf -X POST "http://localhost:6333/collections/$COLLECTION/snapshots" 2>/dev/null || echo '{"error":"snapshot failed"}')
|
|
|
|
|
echo " Qdrant response: $SNAPSHOT_RESPONSE"
|
|
|
|
|
|
|
|
|
|
cd "$BACKUP_DIR"
|
|
|
|
|
tar -czf "backup-$TIMESTAMP.tar.gz" "backup-$TIMESTAMP"
|
|
|
|
|
rm -rf "backup-$TIMESTAMP"
|
|
|
|
|
|
|
|
|
|
echo "Backup complete: $BACKUP_DIR/backup-$TIMESTAMP.tar.gz"
|
|
|
|
|
|
|
|
|
|
ls -t "$BACKUP_DIR"/backup-*.tar.gz | tail -n +11 | xargs rm -f 2>/dev/null || true
|
|
|
|
|
|
|
|
|
|
echo ""
|
|
|
|
|
echo "Current backups:"
|
|
|
|
|
ls -lht "$BACKUP_DIR"/backup-*.tar.gz 2>/dev/null | head -5
|