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 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
fiACTION=$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
fiif [ "$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_PHASESif [ "$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 hourslog "🏁 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:
- 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 Clientes
https://panel.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=backupRespaldo: Spar Gran Canaria
https://spar.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=backupRespaldo: Frigo Martel
https://frigomartel.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=backupRespaldo: Pizza Royers
https://pizzaroyers.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=backupRespaldo: Cash Converters
https://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 Clientes
https://panel.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=restoreRestauración: Spar Gran Canaria
https://spar.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=restoreRestauración: Frigo Martel
https://frigomartel.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=restoreRestauración: Pizza Royers
https://pizzaroyers.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=restoreRestauración: Cash Converters
https://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 Clientes
https://panel.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=permutationPermutación: Spar Gran Canaria
https://spar.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=permutationPermutación: Frigo Martel
https://frigomartel.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=permutationPermutación: Pizza Royers
https://pizzaroyers.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=permutationPermutación: Cash Converters
https://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 Clientes
https://panel.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=adjustAjuste: Spar Gran Canaria
https://spar.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=adjustAjuste: Frigo Martel
https://frigomartel.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=adjustAjuste: Pizza Royers
https://pizzaroyers.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=adjustAjuste: Cash Converters
https://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 Clientes
https://panel.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=updateActualizar Caché: Spar Gran Canaria
https://spar.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=updateActualizar Caché: Frigo Martel
https://frigomartel.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=updateActualizar Caché: Pizza Royers
https://pizzaroyers.comunicacionvisualcanarias.com/_scripts/actualizarLista.php?action=updateActualizar 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
- 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.logLOG_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"