Súper Comandos

Comandos aplicables únicamente en un Súper Ordenador.

💻 Súper Ordenador

El Súper Ordenador es un equipo central de la empresa diseñado para realizar tareas automáticas y continuas.
Está programado en entorno Linux, lo que le otorga estabilidad, seguridad y eficiencia en la ejecución de procesos.

-------------------------------------------------------------------------------------------------
⚙️ Funcionamiento continuo

El Súper Ordenador permanece encendido las 24 horas del día, los 7 días de la semana, sin interrupciones.
Esto permite que todos los procesos y servicios de la empresa se mantengan activos y disponibles en todo momento.

Su función principal es ejecutar tareas pre-programadas, que se realizan automáticamente sin necesidad de intervención manual.

-------------------------------------------------------------------------------------------------
🖥️ Equipos recomendados

Un buen ejemplo de ordenador para transformar en Súper Ordenador son los ordenadores de guardias, ya que suelen permanecer encendidos de forma continua y pueden aprovechar ese tiempo para ejecutar tareas automáticas en segundo plano.

-------------------------------------------------------------------------------------------------
🌐 Acciones globales en todos los subdominios

El Súper Ordenador puede ejecutar scripts que actúan simultáneamente en todos los subdominios de la empresa.
Esto permite realizar acciones coordinadas como:

-------------------------------------------------------------------------------------------------
💡 Ejemplo práctico

Un uso común es borrar la caché cada hora, para asegurar que los contenidos del sistema se mantengan actualizados y visibles para todos los usuarios. De esta manera, el Súper Ordenador garantiza un funcionamiento fluido y sin acumulación de datos temporales.

------------------------------------------------------------------------------------------------
🧩 Cómo crear un Súper Ordenador

Para convertir un ordenador en un Súper Ordenador, es necesario:

  1. 📂 Añadir las carpetas indicadas en las páginas correspondientes de este manual.

  2. 📝 Instalar los scripts necesarios para la automatización de tareas.

  3. 🔄 Verificar la ejecución continua, asegurando que el sistema pueda mantenerse encendido sin interrupciones.

Estos pasos permiten que el equipo adquiera todas las capacidades de automatización y operación continua propias de un Súper Ordenador.

🧩 Cambio de Hora

El script timeChange.sh es un gestor de cambios horarios y respaldos para varios subdominios de la plataforma. Ejecuta de forma automatizada las URL de los scripts PHP correspondientes a cada tienda para cambiar la hora, hacer respaldos o restaurarlos.

Debe ir en un Súper Ordenador.

Funciona para los domingos de cambio horario, si no abre la tienda o cliente el domingo, lo ejecuta el siguiente día disponible.

Espera 72 Horas si se ejecuta un viernes para que la restauración de horarios no se haga antes del propio cambio.

----------------------------------------------------------------------------------------------------------------------------------------------

Canales Corporativos Compatibles:

----------------------------------------------------------------------------------------------------------------------------------------------

Ejecución en terminal del Súper Ordenador:

MODO VERANO

nohup bash /home/cvc/timeChange/timeChange.sh verano >> /home/cvc/timeChange/timeChange.out 2>&1 &

MODO INVIERNO

nohup bash /home/cvc/timeChange/timeChange.sh invierno >> /home/cvc/timeChange/timeChange.out 2>&1 &

REGISTRO DE EJECUCIÓN

tail -f /home/cvc/timeChange/timeChange.log

GUARDAR RESPALDO DE HORARIOS

bash /home/cvc/timeChange/timeChange.sh guardar

CARGAR RESPALDO DE HORARIOS

bash /home/cvc/timeChange/timeChange.sh cargar

SUMAR UNA HORA A TODOS LOS CLIENTES

bash /home/cvc/timeChange/timeChange.sh +1

RESTAR UNA HORA A TODOS LOS CLIENTES

bash /home/cvc/timeChange/timeChange.sh -1

MODO TEST

nohup bash /home/cvc/timeChange/timeChange.sh test >> /home/cvc/timeChange/timeChange.out 2>&1 &

----------------------------------------------------------------------------------------------------------------------------------------------

Requisitos obligatorios:

#!/bin/bash
# ============================================================
# Script: timeChange.sh
# Descripción: Ejecuta backups, cambio horario (verano/invierno)
#              restore, modos de prueba y cambios directos (+1/-1)
# ============================================================

LOG_FILE="/home/cvc/timeChange/timeChange.log"
WAIT_BETWEEN_PHASES=10       # segundos de espera entre fases
REVERSE_HOURS=72             # horas hasta restore / job diferido
DATE_NOW=$(date '+%Y-%m-%d %H:%M:%S')

# Limpiar log en cada ejecución directa (no cuando viene de at)
if [[ "$1" != "cargar" && "$1" != "test_scheduled" ]]; then
    echo "==============================" > "$LOG_FILE"
    echo "🕓 Inicio de ejecución — $DATE_NOW" >> "$LOG_FILE"
    echo "==============================" >> "$LOG_FILE"
fi

# URLs de tiendas
URLS_BACKUP=( 
"https://panel.comunicacionvisualcanarias.com/_scripts/cambioHora.php?action=backup"
"https://spar.comunicacionvisualcanarias.com/_scripts/cambioHora.php?action=backup"
"https://frigomartel.comunicacionvisualcanarias.com/_scripts/cambioHora.php?action=backup"
"https://pizzaroyers.comunicacionvisualcanarias.com/_scripts/cambioHora.php?action=backup"
"https://cashconverters.comunicacionvisualcanarias.com/_scripts/cambioHora.php?action=backup"
)

URLS_RESTORE=(
"https://panel.comunicacionvisualcanarias.com/_scripts/cambioHora.php?action=restore"
"https://spar.comunicacionvisualcanarias.com/_scripts/cambioHora.php?action=restore"
"https://frigomartel.comunicacionvisualcanarias.com/_scripts/cambioHora.php?action=restore"
"https://pizzaroyers.comunicacionvisualcanarias.com/_scripts/cambioHora.php?action=restore"
"https://cashconverters.comunicacionvisualcanarias.com/_scripts/cambioHora.php?action=restore"
)

URLS_SUMMER=(
"https://panel.comunicacionvisualcanarias.com/_scripts/cambioHora.php?action=summer"
"https://spar.comunicacionvisualcanarias.com/_scripts/cambioHora.php?action=summer"
"https://frigomartel.comunicacionvisualcanarias.com/_scripts/cambioHora.php?action=summer"
"https://pizzaroyers.comunicacionvisualcanarias.com/_scripts/cambioHora.php?action=summer"
"https://cashconverters.comunicacionvisualcanarias.com/_scripts/cambioHora.php?action=summer"
)

URLS_WINTER=(
"https://panel.comunicacionvisualcanarias.com/_scripts/cambioHora.php?action=winter"
"https://spar.comunicacionvisualcanarias.com/_scripts/cambioHora.php?action=winter"
"https://frigomartel.comunicacionvisualcanarias.com/_scripts/cambioHora.php?action=winter"
"https://pizzaroyers.comunicacionvisualcanarias.com/_scripts/cambioHora.php?action=winter"
"https://cashconverters.comunicacionvisualcanarias.com/_scripts/cambioHora.php?action=winter"
)

URLS_TEST=(
"https://panel.comunicacionvisualcanarias.com/_scripts/cambioHora.php?action=test"
"https://spar.comunicacionvisualcanarias.com/_scripts/cambioHora.php?action=test"
"https://frigomartel.comunicacionvisualcanarias.com/_scripts/cambioHora.php?action=test"
"https://pizzaroyers.comunicacionvisualcanarias.com/_scripts/cambioHora.php?action=test"
"https://cashconverters.comunicacionvisualcanarias.com/_scripts/cambioHora.php?action=test"
)

# Funciones
log() {
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE"
}

execute_urls() {
    local urls=("$@")
    for url in "${urls[@]}"; do
        curl -s "$url" >/dev/null 2>&1 &
    done
    wait
}

finish_log() {
    log "✅ Finalización completa — $(date '+%Y-%m-%d %H:%M:%S')"
    echo "------------------------------" >> "$LOG_FILE"
}

# ============================================================
# EJECUCIÓN SEGÚN ARGUMENTO
# ============================================================

if [ -z "$1" ]; then
    log "❌ Uso: $0 [verano|invierno|guardar|cargar|+1|-1|test]"
    exit 1
fi

ACTION=$1

# -------------------------------
# SOLO BACKUP
# -------------------------------
if [ "$ACTION" == "guardar" ]; then
    log "📦 Ejecutando solo BACKUP..."
    execute_urls "${URLS_BACKUP[@]}"
    log "✅ BACKUP completado."
    finish_log
    exit 0
fi

# -------------------------------
# SOLO RESTORE
# -------------------------------
if [ "$ACTION" == "cargar" ]; then
    log "♻️ Ejecutando solo RESTORE..."
    execute_urls "${URLS_RESTORE[@]}"
    log "✅ RESTORE completado."
    finish_log
    exit 0
fi

# -------------------------------
# CAMBIO DIRECTO +1 / -1
# -------------------------------
if [ "$ACTION" == "+1" ]; then
    log "🌞 Ejecutando cambio horario +1..."
    execute_urls "${URLS_SUMMER[@]}"
    log "✅ Cambio horario +1 completado."
    finish_log
    exit 0
fi

if [ "$ACTION" == "-1" ]; then
    log "❄️ Ejecutando cambio horario -1..."
    execute_urls "${URLS_WINTER[@]}"
    log "✅ Cambio horario -1 completado."
    finish_log
    exit 0
fi

# -------------------------------
# MODO TEST — programación con 72 horas
# -------------------------------
if [ "$ACTION" == "test" ]; then
    log "🧪 Ejecutando modo TEST..."
    execute_urls "${URLS_TEST[@]}"
    log "✅ URLs de test ejecutadas ahora."

    log "⏳ Programando ejecución diferida con at dentro de $REVERSE_HOURS horas..."
    TEST_COMMAND="bash /home/cvc/timeChange/timeChange.sh test_scheduled >> /home/cvc/timeChange/timeChange.log 2>&1"
    echo "$TEST_COMMAND" | at now + $REVERSE_HOURS hours
    log "📅 Comando programado con 'at' para reejecutar test."
    finish_log
    exit 0
fi

# -------------------------------
# MODO TEST PROGRAMADO AUTOMÁTICO
# -------------------------------
if [ "$ACTION" == "test_scheduled" ]; then
    log "🚀 Ejecución iniciada automáticamente por 'at'"
    log "🔁 Ejecución programada del modo TEST..."
    execute_urls "${URLS_TEST[@]}"
    log "✅ URLs de test ejecutadas (programadas)."
    finish_log
    exit 0
fi

# -------------------------------
# CAMBIO HORARIO COMPLETO (verano/invierno)
# -------------------------------
if [[ "$ACTION" == "verano" || "$ACTION" == "invierno" ]]; then
    log "📦 Iniciando BACKUP (todas las tiendas)..."
    execute_urls "${URLS_BACKUP[@]}"
    log "✅ BACKUP completado."
    sleep $WAIT_BETWEEN_PHASES

    if [ "$ACTION" == "verano" ]; then
        log "🌞 Ejecutando CAMBIO HORARIO VERANO..."
        execute_urls "${URLS_SUMMER[@]}"
    else
        log "❄️ Ejecutando CAMBIO HORARIO INVIERNO..."
        execute_urls "${URLS_WINTER[@]}"
    fi
    log "✅ Cambio horario completado."

    log "⏳ Programando RESTORE dentro de $REVERSE_HOURS horas..."
    RESTORE_COMMAND="bash /home/cvc/timeChange/timeChange.sh cargar >> /home/cvc/timeChange/timeChange.log 2>&1"
    echo "$RESTORE_COMMAND" | at now + $REVERSE_HOURS hours

    log "🏁 Proceso completo programado. Revisa log para seguimiento."
    finish_log
    exit 0
fi

🧩 Gestor de Contenidos

El script actualizarLista.php se centra en guardar, cargar y modificar la posición de los contenidos multimedia del los clientes. También puede borrar la caché para asegurar la visualización de los contenidos programados a futuro. Contiene diversos modos de función explicados más adelante con su específica url de ejecución.

Existen dos variantes:

----------------------------------------------------------------------------------------------------------------------------------------------

Canales Corporativos Compatibles:

----------------------------------------------------------------------------------------------------------------------------------------------

Ejecución en Cualquier Equipo:

MODO RESPALDO

Respaldo General: Todos los Clientes
https://panel.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=backup

Respaldo: Spar Gran Canaria
https://spar.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=backup

Respaldo: Frigo Martel
https://frigomartel.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=backup

Respaldo: Pizza Royers
https://pizzaroyers.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=backup

Respaldo: Cash Converters
https://cashconverters.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=backup

MODO RESTAURACIÓN

Restauración General: Todos los Clientes
https://panel.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=restore

Restauración: Spar Gran Canaria
https://spar.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=restore

Restauración: Frigo Martel
https://frigomartel.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=restore

Restauración: Pizza Royers
https://pizzaroyers.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=restore

Restauración: Cash Converters
https://cashconverters.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=restore

MODO PERMUTACIÓN

Permutación General: Todos los Clientes
https://panel.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=permutation

Permutación: Spar Gran Canaria
https://spar.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=permutation

Permutación: Frigo Martel
https://frigomartel.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=permutation

Permutación: Pizza Royers
https://pizzaroyers.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=permutation

Permutación: Cash Converters
https://cashconverters.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=permutation

MODO AJUSTE

Ajuste General: Todos los Clientes
https://panel.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=adjust

Ajuste: Spar Gran Canaria
https://spar.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=adjust

Ajuste: Frigo Martel
https://frigomartel.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=adjust

Ajuste: Pizza Royers
https://pizzaroyers.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=adjust

Ajuste: Cash Converters
https://cashconverters.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=adjust

MODO ACTUALIZAR CACHÉ

Actualizar Caché General: Todos los Clientes
https://panel.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=update

Actualizar Caché: Spar Gran Canaria
https://spar.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=update

Actualizar Caché: Frigo Martel
https://frigomartel.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=update

Actualizar Caché: Pizza Royers
https://pizzaroyers.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=update

Actualizar Caché: Cash Converters
https://cashconverters.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=update

Actualizar Caché: Hilo Musical
https://hilomusical.comunicacionvisualcanarias.com/_scripts/borrarCache.php?action=all

------------------------------------------------------------------------------------------------------------------------------------

Requisitos obligatorios:

#!/bin/bash

# Script para ejecutar varias URLs de actualización de playlists simultáneamente
# Log: /home/cvc/EditList/EditList.log

LOG_FILE="/home/cvc/EditList/EditList.log"

# Mostrar hora de inicio
echo "----------------------------------------" | tee -a "$LOG_FILE"
echo "🕒 Ejecución iniciada: $(date '+%Y-%m-%d %H:%M:%S')" | tee -a "$LOG_FILE"

URLS=(
  "https://panel.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=update"
)

# Función para ejecutar cada URL
procesar_url() {
    local URL="$1"
    local HTTP_CODE
    HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" "$URL")

    if [ "$HTTP_CODE" -eq 200 ]; then
        echo "✅ URL procesada correctamente: $URL" | tee -a "$LOG_FILE"
    else
        echo "❌ Error al procesar URL. Código HTTP: $HTTP_CODE : $URL" | tee -a "$LOG_FILE"
    fi
}

# Ejecutar todas las URLs simultáneamente
for URL in "${URLS[@]}"; do
    procesar_url "$URL" &
done

# Esperar a que todas terminen
wait

# Mostrar hora de finalización
echo "✅ Ejecución finalizada: $(date '+%Y-%m-%d %H:%M:%S')" | tee -a "$LOG_FILE"
echo "" | tee -a "$LOG_FILE"