#!/bin/bash # Automatic backup to Google Drive # Backs up Burmddit database and important files BACKUP_DIR="/tmp/burmddit-backups" DATE=$(date +%Y%m%d-%H%M%S) KEEP_DAYS=7 mkdir -p "$BACKUP_DIR" echo "📦 Starting Burmddit backup..." # 1. Backup Database if [ ! -z "$DATABASE_URL" ]; then echo " → Database backup..." pg_dump "$DATABASE_URL" > "$BACKUP_DIR/database-$DATE.sql" gzip "$BACKUP_DIR/database-$DATE.sql" echo " ✓ Database backed up" else echo " ⚠ DATABASE_URL not set, skipping database backup" fi # 2. Backup Configuration echo " → Configuration backup..." tar -czf "$BACKUP_DIR/config-$DATE.tar.gz" \ /home/ubuntu/.openclaw/workspace/burmddit/backend/config.py \ /home/ubuntu/.openclaw/workspace/burmddit/frontend/.env.local \ /home/ubuntu/.openclaw/workspace/.credentials \ 2>/dev/null || true echo " ✓ Configuration backed up" # 3. Backup Code (weekly only) if [ $(date +%u) -eq 1 ]; then # Monday echo " → Weekly code backup..." cd /home/ubuntu/.openclaw/workspace/burmddit git archive --format=tar.gz --output="$BACKUP_DIR/code-$DATE.tar.gz" HEAD echo " ✓ Code backed up" fi # 4. Upload to Google Drive (if configured) if command -v rclone &> /dev/null; then if rclone listremotes | grep -q "gdrive:"; then echo " → Uploading to Google Drive..." rclone copy "$BACKUP_DIR/" gdrive:Backups/Burmddit/ echo " ✓ Uploaded to Drive" else echo " ⚠ Google Drive not configured (run 'rclone config')" fi else echo " ⚠ rclone not installed, skipping Drive upload" fi # 5. Clean up old local backups echo " → Cleaning old backups..." find "$BACKUP_DIR" -name "*.gz" -mtime +$KEEP_DAYS -delete echo " ✓ Old backups cleaned" echo "✅ Backup complete!" echo " Location: $BACKUP_DIR" echo " Files: $(ls -lh $BACKUP_DIR | wc -l) backups"