Files
2026-01-17 11:40:17 +01:00

93 lines
3.4 KiB
Bash

#!/bin/bash
# GKACHELE™ - Script de Backup Completo
# © 2025 GKACHELE™. Todos los derechos reservados.
# Uso: bash backup_completo.sh
HASH=$(date +%Y%m%d-%H%M%S)
BACKUP_DIR="backups/backup-${HASH}"
RASPBERRY_HOST="192.168.1.134"
RASPBERRY_PORT="2222"
RASPBERRY_USER="pi"
RASPBERRY_PASS="Gdk1983gdk45@"
RASPBERRY_PATH="/home/pi/gkachele-saas"
echo "=========================================="
echo "🔄 GKACHELE™ - BACKUP COMPLETO"
echo "=========================================="
echo "Hash: ${HASH}"
echo ""
# Crear directorio de backup
mkdir -p "${BACKUP_DIR}"
mkdir -p "${BACKUP_DIR}/local"
mkdir -p "${BACKUP_DIR}/raspberry"
echo "📦 1. Respaldando código local..."
cp -r demo "${BACKUP_DIR}/local/" 2>/dev/null || echo "⚠️ No se encontró demo/"
cp -r *.md "${BACKUP_DIR}/local/" 2>/dev/null || echo "⚠️ No se encontraron .md"
cp -r *.sh "${BACKUP_DIR}/local/" 2>/dev/null || echo "⚠️ No se encontraron .sh"
cp -r *.py "${BACKUP_DIR}/local/" 2>/dev/null || echo "⚠️ No se encontraron .py"
echo "📦 2. Respaldando desde Raspberry..."
echo " Conectando a Raspberry..."
# Backup de código
sshpass -p "${RASPBERRY_PASS}" scp -P ${RASPBERRY_PORT} -o StrictHostKeyChecking=no -r \
${RASPBERRY_USER}@${RASPBERRY_HOST}:${RASPBERRY_PATH}/* \
"${BACKUP_DIR}/raspberry/" 2>/dev/null || echo "⚠️ Error copiando código"
# Backup de base de datos
sshpass -p "${RASPBERRY_PASS}" scp -P ${RASPBERRY_PORT} -o StrictHostKeyChecking=no \
${RASPBERRY_USER}@${RASPBERRY_HOST}:${RASPBERRY_PATH}/database/main.db \
"${BACKUP_DIR}/raspberry/main.db" 2>/dev/null || echo "⚠️ Error copiando DB"
# Backup de configuración
sshpass -p "${RASPBERRY_PASS}" ssh -p ${RASPBERRY_PORT} -o StrictHostKeyChecking=no \
${RASPBERRY_USER}@${RASPBERRY_HOST} \
"sudo cat /etc/systemd/system/gkachele-saas.service" > "${BACKUP_DIR}/raspberry/gkachele-saas.service" 2>/dev/null || echo "⚠️ Error copiando service"
sshpass -p "${RASPBERRY_PASS}" ssh -p ${RASPBERRY_PORT} -o StrictHostKeyChecking=no \
${RASPBERRY_USER}@${RASPBERRY_HOST} \
"sudo cat /etc/nginx/sites-available/gk-saas.komkida.duckdns.org.conf" > "${BACKUP_DIR}/raspberry/nginx.conf" 2>/dev/null || echo "⚠️ Error copiando nginx"
echo ""
echo "📝 3. Creando archivo de información..."
cat > "${BACKUP_DIR}/INFO.txt" << EOF
GKACHELE™ - Backup Completo
Hash: ${HASH}
Fecha: $(date)
==========================================
ESTADO DEL SISTEMA:
- Sistema modular de templates (_gkachele/)
- Menús dinámicos (header, footer, sidebar)
- Widgets dinámicos
- Base de datos multi-tenant (main.db)
- Servicio systemd: gkachele-saas
- Nginx reverse proxy
ARCHIVOS INCLUIDOS:
- Código local (demo/)
- Código Raspberry (raspberry/)
- Base de datos (raspberry/main.db)
- Configuración systemd (raspberry/gkachele-saas.service)
- Configuración nginx (raspberry/nginx.conf)
RESTAURACIÓN:
1. Copiar raspberry/* a /home/pi/gkachele-saas/
2. Restaurar main.db a database/main.db
3. Restaurar gkachele-saas.service a /etc/systemd/system/
4. Restaurar nginx.conf a /etc/nginx/sites-available/
5. Reiniciar servicios: sudo systemctl restart gkachele-saas nginx
© 2025 GKACHELE™. Todos los derechos reservados.
EOF
echo "✅ Backup completado en: ${BACKUP_DIR}"
echo ""
echo "📊 Resumen:"
du -sh "${BACKUP_DIR}"/* 2>/dev/null | head -5
echo ""
echo "🎯 Hash del backup: ${HASH}"
echo "=========================================="