Ayuda Script en Bash

Temas sobre programación ( php, c, sql, html, perl, python, ruby, java, bash, etc ) y recursos ( herramientas, frameworks, hosting, cms, etc )

Moderadores: maiku, akodo

Responder
kikelin
Forista Nuevo
Forista Nuevo
Mensajes: 25
Registrado: Mar Abr 13, 2010 6:27 pm

Ayuda Script en Bash

Mensaje por kikelin »

Buenos días,

necesito ayuda para hacer el siguiente script, más o menos ...

Quiero comprobar el estado de una página web, es decir, si está o no caída. Es una web externa que quiero chequear con una máquina linux en otra ubicación, por internet.

He pensado, que con wget, puedo descargarme una página en concreto, y si la descarga, pues es que todo está correcto, y devolvería un númerito como 0 que todo correcto y distinto es que algo falla, no se, es lo que se me ocurre. Posteriormente, el script debe eliminar el archivo que ha copiado.

Ideal es que lo haga todo en una linea de comando, pero es que no se me termina de ocurrir mucho ...

¿¿Alguien me pone un poco de luz??

Avatar de Usuario
akodo
Moderador
Moderador
Mensajes: 1457
Registrado: Mié Nov 28, 2007 8:00 am
Ubicación: En la X del explorer (pulse para llamar)

Re: Ayuda Script en Bash

Mensaje por akodo »

Posiblemente sea mejor idea utilizar curl en vez de wget.

La idea que tienes es buena. Tan sólo es cuestión de hacer que el resultado (la página) vaya a /dev/null para que no tengas que borrar un fichero. Además, es posible que haciendo una petición HEAD en vez de GET funcione mejor al no tener que descargar toda la página.
Además, es mejor que la página que descargues sea una página especial, típicamente de status
Descargue el gestor de mp3 "Music Manager" -> ([url=http://ctrlalt.iespana.es]mmlf[/url])
Última versión del gestor "Music Manager" -> ([url=http://sourceforge.net/projects/jmusicmanager/]jmmm[/url])

kikelin
Forista Nuevo
Forista Nuevo
Mensajes: 25
Registrado: Mar Abr 13, 2010 6:27 pm

Re: Ayuda Script en Bash

Mensaje por kikelin »

había pensado un

wget pagina 2> fichero | grep -o "OK" fichero | rm página

Esto me devolverá OK, aunque preferiría un valor numérico caso que este todo correcto y otro distinto caso que no lo este!

Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1816
Registrado: Dom Oct 10, 2004 7:00 am

Re: Ayuda Script en Bash

Mensaje por neurus »

Ya sé que eso de leer el man está pasado de moda. Pero a veces ayuda.

Código: Seleccionar todo

if ( wget --quiet --spider www.google.com.ar); then echo 0; else echo 1; fi
Si quieres que lo guarde en una variable:

Código: Seleccionar todo

if ( wget --quiet --spider www.google.com.ar); then resultado=0; else resultado=1; fi

MetTxin
Forista Medio
Forista Medio
Mensajes: 332
Registrado: Mié Abr 27, 2011 11:32 am

Re: Ayuda Script en Bash

Mensaje por MetTxin »

A mí como a akodo lo primero que me ha venido a la cabeza es curl y el método HEAD, tipo...

curl -m 5 -Is 'url_a_comprobar' | grep -c "200 OK"

así directamente te sacaría un uno o un cero y le das un tiempo máximo de respuesta

kikelin
Forista Nuevo
Forista Nuevo
Mensajes: 25
Registrado: Mar Abr 13, 2010 6:27 pm

Re: Ayuda Script en Bash

Mensaje por kikelin »

MetTxin escribió:A mí como a akodo lo primero que me ha venido a la cabeza es curl y el método HEAD, tipo...

curl -m 5 -Is 'url_a_comprobar' | grep -c "200 OK"

así directamente te sacaría un uno o un cero y le das un tiempo máximo de respuesta
Siempre me devuelve 0. No se porque, aunque le ponga urls que no existen

MetTxin
Forista Medio
Forista Medio
Mensajes: 332
Registrado: Mié Abr 27, 2011 11:32 am

Re: Ayuda Script en Bash

Mensaje por MetTxin »

kikelin escribió: Siempre me devuelve 0. No se porque, aunque le ponga urls que no existen
Pues no debería, aunque depende de lo que devuelva el HEAD. Por ejemplo, y siguiendo el ejemplo con la url que había puesto neurus

curl -m 5 -Is 'http://www.google.com.ar' | grep -c '200 OK'

a mí me devuelve 1, o sea, que hay una línea en la respuesta del HEAD que contiene «200 OK», quítale el grep para ver qué te devuelve, tal que

curl -m 5 -Is 'http://www.google.com.ar'

(la opción de curl es «I», i mayúscula, a lo mejor has puesto «ele»!)

kikelin
Forista Nuevo
Forista Nuevo
Mensajes: 25
Registrado: Mar Abr 13, 2010 6:27 pm

Re: Ayuda Script en Bash

Mensaje por kikelin »

MetTxin escribió:
kikelin escribió: Siempre me devuelve 0. No se porque, aunque le ponga urls que no existen
Pues no debería, aunque depende de lo que devuelva el HEAD. Por ejemplo, y siguiendo el ejemplo con la url que había puesto neurus

curl -m 5 -Is 'http://www.google.com.ar' | grep -c '200 OK'

a mí me devuelve 1, o sea, que hay una línea en la respuesta del HEAD que contiene «200 OK», quítale el grep para ver qué te devuelve, tal que

curl -m 5 -Is 'http://www.google.com.ar'

(la opción de curl es «I», i mayúscula, a lo mejor has puesto «ele»!)
Hecho! Era el problema de la L y la i ...

Muchas gracias! ahora todo parece correcto!

Editado -- Lun Ene 13, 2014 2:51 am --

Ok!

Os cuento, cuando es 1 todo es correcto, pero el sistema al que integra, cuando es 0, es como si no le entrase nada. Por tanto, me gustaría hacer una operación aritmetica y sumar 1.

La cosa es que no consigo hacerlo

1+(curl -m 5 -Is 'http://www.google.com.ar' | grep -c '200 OK')

y da error. ¿como podría sumarle 1?

blackman
Forista Nuevo
Forista Nuevo
Mensajes: 17
Registrado: Mié Oct 05, 2011 12:37 am
Contactar:

Re: Ayuda Script en Bash

Mensaje por blackman »

O por ejemplo:
#!/bin/bash
web="http://serinto.com/us"
wget --quiet --spider $web
case $? in
0)
echo "0 - No problems occurred.";;
1)
echo "1 - Generic error code.";;
2)
echo "2 - Parse error---for instance, when parsing command-line options, the .wgetrc or .netrc...";;
3)
echo "3 - File I/O error.";;
4)
echo "4 - Network failure.";;
5)
echo "5 - SSL verification failure.";;
6)
echo "6 - Username/password authentication failure.";;
7)
echo "7 - Protocol errors.";;
8)
echo "8 - Server issued an error response.";;
esac
http://serinto.com - Linux y Drupal para todos

Responder
  • Temas similares
    Respuestas
    Vistas
    Último mensaje