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:

⏰ Actualizar la hora en todos los sistemas al mismo tiempo.

💾 Hacer respaldos automáticos del contenido de cada subdominio.

🎵 Cambiar el canal del hilo musical en todos los espacios conectados.

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

💡 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:

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

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

🔄 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:

Comunicación Visual Canarias: Panel

Spar Gran Canaria

Frigo Martel

Pizza Royers

Cash Converters

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

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 &

Ejecutar el viernes previo al sábado y domingo de cambio horario.

Si el domingo de cambio horario el equipo no tiene encendido, salta al siguiente día disponible.

72 Horas después restablecerá los horarios.

[Guardar Respaldo -> 10 Segundos -> Sumar una hora apertura del domingo -> 72 Horas -> Cargar Respaldo]

MODO INVIERNO

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

Ejecutar el viernes previo al sábado y domingo de cambio horario.

Si el domingo de cambio horario el equipo no tiene encendido, salta al siguiente día disponible.

72 Horas después restablecerá los horarios.

[Guardar Respaldo -> 10 Segundos -> Restar una hora apertura del domingo -> 72 Horas -> Cargar Respaldo]

REGISTRO DE EJECUCIÓN

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

Revisa la fecha y hora de ejecución de cualquier modo del script.

GUARDAR RESPALDO DE HORARIOS

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

Guarda un respaldo de los horarios de todos los clientes y subdominios.

CARGAR RESPALDO DE HORARIOS

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

Carga el respaldo de los horarios de todos los clientes y subdominios.

SUMAR UNA HORA A TODOS LOS CLIENTES

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

Suma una hora a las apertura en los horarios de todos los clientes y subdominios en los domingos y posteriores de cambio horario.

RESTAR UNA HORA A TODOS LOS CLIENTES

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

Resta una hora a las apertura en los horarios de todos los clientes y subdominios en los domingos y posteriores de cambio horario.

MODO TEST

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

Modo test no hace ningún cambio en la base de datos ni en los canales corporativos.

72 Horas después debe confirmar nueva ejecución.

Su función principal es ver si el script se mantiene activo hasta pasadas las horas previstas para comprobar si los modos funcionarían adecuadamente.

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

Requisitos obligatorios:

Carpeta llamada "timeChange" dentro de "home - > cvc"

Dentro de la carpeta, el script que se llamará "timeChange" con formato .sh

#!/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 fasesREVERSE_HOURS=72             # horas hasta restore / job diferidoDATE_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 tiendasURLS_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")

# Funcioneslog() {    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 1fi

ACTION=$1

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

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

# -------------------------------# 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 0fi

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

# -------------------------------# 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 0fi

# -------------------------------# 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 0fi

# -------------------------------# 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 0fi

🧩 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:

Panel actualizarLista.php:

Ejecuta los modos en el resto de subdominios al mismo tiempo.

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

Spar / Frigo Martel / Pizza Royers / Cash Converters actualizarLista.php:

Ejecuta los modos en su respectivo subdominio.

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

Canales Corporativos Compatibles:

Spar Gran Canaria

Frigo Martel

Pizza Royers

Cash Converters

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

Ejecución en Cualquier Equipo:

MODO RESPALDO

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

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

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

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

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

Guarda un respaldo de los contenidos de todos los clientes en sus respectivos subdominios.

MODO RESTAURACIÓN

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

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

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

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

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

Carga el respaldo disponible de los contenidos de todos los clientes en sus respectivos subdominios.

MODO PERMUTACIÓN

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

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

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

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

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

Mueve un espacio de los contenidos en la lista de reproducción en todos los clientes en sus respectivos subdominios.

MODO AJUSTE

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

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

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

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

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

Retrocede un espacio de los contenidos en la lista de reproducción en todos los clientes en sus respectivos subdominios.

MODO ACTUALIZAR CACHÉ

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

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

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

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

Actualizar Caché: Cash Convertershttps://cashconverters.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=updateActualizar Caché: Hilo Musicalhttps://hilomusical.comunicacionvisualcanarias.com/_scripts/borrarCache.php?action=all

Borra la caché de todos los contenidos en todos los clientes en sus respectivos subdominios.

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

Requisitos obligatorios:

Ejecución Manual: Tener un buscador actualizado (Firefox, Google Chrome, Microsoft Edge...)

Ejecución Automática:  1.-  Carpeta llamada "EditList" dentro de "home - > cvc" en un Súper Ordenador.

Ejecución Automática:  2.-  Dentro de la carpeta, el script que se llamará "EditList" con formato .sh

#!/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 inicioecho "----------------------------------------" | 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 URLprocesar_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áneamentefor URL in "${URLS[@]}"; do    procesar_url "$URL" &done

# Esperar a que todas terminenwait

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

