191 lines
7.1 KiB
Bash
Executable File
191 lines
7.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# ============================================
|
|
# 🔍 Script de Verificación de Cache
|
|
# ============================================
|
|
|
|
echo "═══════════════════════════════════════════"
|
|
echo "🔍 VERIFICANDO CONFIGURACIÓN ANTI-CACHÉ"
|
|
echo "═══════════════════════════════════════════"
|
|
echo ""
|
|
|
|
# Colores
|
|
GREEN='\033[0;32m'
|
|
RED='\033[0;31m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# URL a verificar (cambiar según tu instalación)
|
|
URL="http://localhost:8080/conversations.php"
|
|
|
|
# Si se pasa un argumento, usarlo como URL
|
|
if [ ! -z "$1" ]; then
|
|
URL="$1"
|
|
fi
|
|
|
|
echo "📍 URL a verificar: $URL"
|
|
echo ""
|
|
|
|
# Verificar headers HTTP
|
|
echo "🔍 Verificando headers HTTP..."
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
|
|
HEADERS=$(curl -I -s "$URL")
|
|
|
|
# Función para verificar header
|
|
check_header() {
|
|
local header_name="$1"
|
|
local expected_value="$2"
|
|
|
|
if echo "$HEADERS" | grep -qi "$header_name"; then
|
|
local actual_value=$(echo "$HEADERS" | grep -i "$header_name" | cut -d: -f2- | tr -d '\r\n' | sed 's/^[[:space:]]*//')
|
|
echo -e "${GREEN}✅ $header_name:${NC} $actual_value"
|
|
|
|
if [ ! -z "$expected_value" ]; then
|
|
if echo "$actual_value" | grep -qi "$expected_value"; then
|
|
echo -e " ${GREEN}→ Contiene '$expected_value' ✓${NC}"
|
|
else
|
|
echo -e " ${YELLOW}⚠️ No contiene '$expected_value' esperado${NC}"
|
|
fi
|
|
fi
|
|
return 0
|
|
else
|
|
echo -e "${RED}❌ $header_name: NO ENCONTRADO${NC}"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
echo ""
|
|
echo "1️⃣ Cache-Control"
|
|
check_header "Cache-Control" "no-store"
|
|
|
|
echo ""
|
|
echo "2️⃣ Pragma"
|
|
check_header "Pragma" "no-cache"
|
|
|
|
echo ""
|
|
echo "3️⃣ Expires"
|
|
check_header "Expires" "1970"
|
|
|
|
echo ""
|
|
echo "4️⃣ Content-Type"
|
|
check_header "Content-Type" "text/html"
|
|
|
|
echo ""
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo ""
|
|
|
|
# Verificar contenido HTML
|
|
echo "🔍 Verificando meta tags en HTML..."
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
|
|
CONTENT=$(curl -s "$URL")
|
|
|
|
check_meta() {
|
|
local meta_name="$1"
|
|
local search_pattern="$2"
|
|
|
|
if echo "$CONTENT" | grep -qi "$search_pattern"; then
|
|
echo -e "${GREEN}✅ Meta tag '$meta_name' encontrado${NC}"
|
|
return 0
|
|
else
|
|
echo -e "${RED}❌ Meta tag '$meta_name' NO encontrado${NC}"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
echo ""
|
|
check_meta "Cache-Control" 'meta.*http-equiv.*Cache-Control.*no-cache'
|
|
check_meta "Pragma" 'meta.*http-equiv.*Pragma.*no-cache'
|
|
check_meta "Expires" 'meta.*http-equiv.*Expires.*0'
|
|
|
|
echo ""
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo ""
|
|
|
|
# Verificar cache busting en scripts
|
|
echo "🔍 Verificando cache busting en scripts..."
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
|
|
if echo "$CONTENT" | grep -qE 'chat-common\.js\?v=[0-9]+\.[0-9]+'; then
|
|
VERSION=$(echo "$CONTENT" | grep -oE 'chat-common\.js\?v=[0-9]+\.[0-9]+\.[0-9]+' | head -1)
|
|
echo -e "${GREEN}✅ Cache busting encontrado:${NC} $VERSION"
|
|
|
|
# Extraer solo el número de versión
|
|
VERSION_NUMBER=$(echo "$VERSION" | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
|
|
echo -e " ${GREEN}→ Versión actual:${NC} $VERSION_NUMBER"
|
|
else
|
|
echo -e "${RED}❌ Cache busting NO encontrado o formato incorrecto${NC}"
|
|
fi
|
|
|
|
echo ""
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo ""
|
|
|
|
# Verificar versión en consola
|
|
if echo "$CONTENT" | grep -q "WHATSAPP BOT v1.2.1 - ANTI-CACHÉ ACTIVADO"; then
|
|
echo -e "${GREEN}✅ Versión 1.2.1 con anti-caché confirmada${NC}"
|
|
else
|
|
echo -e "${YELLOW}⚠️ Versión no detectada o diferente${NC}"
|
|
fi
|
|
|
|
echo ""
|
|
echo "═══════════════════════════════════════════"
|
|
echo "📊 RESUMEN"
|
|
echo "═══════════════════════════════════════════"
|
|
|
|
# Contar checks exitosos y fallidos
|
|
TOTAL_CHECKS=7
|
|
PASSED=0
|
|
FAILED=0
|
|
|
|
if echo "$HEADERS" | grep -qi "Cache-Control.*no-store"; then ((PASSED++)); else ((FAILED++)); fi
|
|
if echo "$HEADERS" | grep -qi "Pragma.*no-cache"; then ((PASSED++)); else ((FAILED++)); fi
|
|
if echo "$HEADERS" | grep -qi "Expires.*1970"; then ((PASSED++)); else ((FAILED++)); fi
|
|
if echo "$CONTENT" | grep -qi 'meta.*Cache-Control.*no-cache'; then ((PASSED++)); else ((FAILED++)); fi
|
|
if echo "$CONTENT" | grep -qi 'meta.*Pragma.*no-cache'; then ((PASSED++)); else ((FAILED++)); fi
|
|
if echo "$CONTENT" | grep -qi 'meta.*Expires.*0'; then ((PASSED++)); else ((FAILED++)); fi
|
|
if echo "$CONTENT" | grep -qE 'chat-common\.js\?v=[0-9]+'; then ((PASSED++)); else ((FAILED++)); fi
|
|
|
|
echo ""
|
|
echo -e "${GREEN}✅ Checks exitosos: $PASSED/$TOTAL_CHECKS${NC}"
|
|
echo -e "${RED}❌ Checks fallidos: $FAILED/$TOTAL_CHECKS${NC}"
|
|
|
|
echo ""
|
|
|
|
if [ $FAILED -eq 0 ]; then
|
|
echo -e "${GREEN}═══════════════════════════════════════════${NC}"
|
|
echo -e "${GREEN}🎉 ¡TODO ESTÁ CONFIGURADO CORRECTAMENTE!${NC}"
|
|
echo -e "${GREEN}═══════════════════════════════════════════${NC}"
|
|
echo ""
|
|
echo "✅ La página está configurada para NO cachearse"
|
|
echo "✅ Los scripts tienen cache busting activo"
|
|
echo "✅ Los usuarios verán siempre la versión más reciente"
|
|
echo ""
|
|
echo "💡 Si aún ves problemas, pide al usuario hacer:"
|
|
echo " - Ctrl+Shift+R (hard reload)"
|
|
echo " - Limpiar caché del navegador"
|
|
exit 0
|
|
else
|
|
echo -e "${YELLOW}═══════════════════════════════════════════${NC}"
|
|
echo -e "${YELLOW}⚠️ HAY PROBLEMAS DE CONFIGURACIÓN${NC}"
|
|
echo -e "${YELLOW}═══════════════════════════════════════════${NC}"
|
|
echo ""
|
|
echo "🔧 Posibles soluciones:"
|
|
echo ""
|
|
echo "1. Verifica que mod_headers esté habilitado en Apache:"
|
|
echo " sudo a2enmod headers"
|
|
echo " sudo systemctl restart apache2"
|
|
echo ""
|
|
echo "2. Verifica que .htaccess se esté leyendo:"
|
|
echo " - Asegúrate que AllowOverride All esté configurado"
|
|
echo ""
|
|
echo "3. Verifica que conversations.php tenga los headers PHP:"
|
|
echo " - Busca 'header(\"Cache-Control' al inicio del archivo"
|
|
echo ""
|
|
echo "4. Si usas Nginx en lugar de Apache:"
|
|
echo " - Los headers deben configurarse en el server block"
|
|
echo ""
|
|
exit 1
|
|
fi
|