3 votos

Cómo iniciar Safari en una página del navegador sólo cuando el Error 502 deja sucediendo?

Tengo una situación en la que si presiono una actualización a una instancia en la web, va a tardar de 3 a 5 minutos para compilar, luego, cuando la compilación se ha completado con éxito, la instancia que se va a tirar Error 502 durante un par de minutos antes de empezar a correr de nuevo.

Estoy buscando una solución en la que, la instancia (una dirección URL del servidor) se consulta cada 5 segundos o así, y cuando deja de responder 502, Safari va a arrancar.

Alguna idea de cómo podría hacer eso? Hasta el momento, en el terminal, puedo ejecutar esto:

curl -I http://url 2>/dev/null | head -n 1 | cut -d$' ' -f2

y esta es la salida el Puerto HTTP de la respuesta o lo que sea, pero no soy lo suficientemente inteligentes como para "hacer que cada 5 segundos" o para definir un "If (respuesta resultante) es X, sigue repitiendo en bucle, pero Si (como resultado de la respuesta) Y, a continuación, abra Safari con una URL".

Alguna idea?

3voto

Douglas Puntos 10417

Una "rápida y sucia" de script para lograr lo que usted está buscando para hacer, que pudo ser escrita como:

#!/bin/bash

url = "http://url"
code=`curl -I $url 2>/dev/null | head -n 1 | cut -d$' ' -f2`

while [ "$code" == 502 ]
do
  sleep 5
  echo trying again
  code=`curl -I $url 2>/dev/null | head -n 1 | cut -d$' ' -f2`
done

open -a Safari $url

Básicamente, lo que hace es capturar el valor de salida en una variable llamada code. A continuación, evalúa esa variable en un tiempo/bucle Do cada 5 segundos hasta que el valor de los cambios. Una vez que esto sucede, existe el bucle y se inicia un Safari instancia apuntando a la URL.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X