Reglamento general de los foros   •   FAQ   •   Buscar en el foro •  Registrarse | Iniciar sesión 



Portada » Foros Linux » Desarrollo » Programación


Nuevo tema Responder al tema
 [ 9 mensajes ] 
Patrocinadores

Autor
Buscar:
Mensaje

Desconectado
Forista Nuevo
Forista Nuevo
Avatar de Usuario

Registrado: Mar Abr 13, 2010 6:27 pm
Mensajes: 21

Nota Publicado: Sab Ene 11, 2014 11:26 am 
Arriba  
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??

 Perfil  

Desconectado
Moderador
Moderador
Avatar de Usuario

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

Nota Publicado: Dom Ene 12, 2014 2:07 am 
Arriba  
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" -> (mmlf)
Última versión del gestor "Music Manager" -> (jmmm)

 Perfil  

Desconectado
Forista Nuevo
Forista Nuevo
Avatar de Usuario

Registrado: Mar Abr 13, 2010 6:27 pm
Mensajes: 21

Nota Publicado: Dom Ene 12, 2014 3:04 am 
Arriba  
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!

 Perfil  

Desconectado
Forista Legendario
Forista Legendario
Avatar de Usuario

Registrado: Dom Oct 10, 2004 7:00 am
Mensajes: 1797

Nota Publicado: Dom Ene 12, 2014 6:09 am 
Arriba  
Ya sé que eso de leer el man está pasado de moda. Pero a veces ayuda.

Código:
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:
if ( wget --quiet --spider www.google.com.ar); then resultado=0; else resultado=1; fi

 Perfil  

Desconectado
Forista Medio
Forista Medio

Registrado: Mié Abr 27, 2011 11:32 am
Mensajes: 331

Nota Publicado: Dom Ene 12, 2014 1:39 pm 
Arriba  
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

 Perfil  

Desconectado
Forista Nuevo
Forista Nuevo
Avatar de Usuario

Registrado: Mar Abr 13, 2010 6:27 pm
Mensajes: 21

Nota Publicado: Dom Ene 12, 2014 1:44 pm 
Arriba  
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

 Perfil  

Desconectado
Forista Medio
Forista Medio

Registrado: Mié Abr 27, 2011 11:32 am
Mensajes: 331

Nota Publicado: Dom Ene 12, 2014 3:33 pm 
Arriba  
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»!)

 Perfil  

Desconectado
Forista Nuevo
Forista Nuevo
Avatar de Usuario

Registrado: Mar Abr 13, 2010 6:27 pm
Mensajes: 21

Nota Publicado: Lun Ene 13, 2014 10:51 am 
Arriba  
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?

 Perfil  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Mié Oct 05, 2011 12:37 am
Mensajes: 17

Nota Publicado: Mar Ago 19, 2014 8:06 pm 
Arriba  
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

 Perfil WWW  
Mostrar mensajes previos:  Ordenar por  
 [ 9 mensajes ] 
Nuevo tema Responder al tema

Saltar a:  


 Temas relacionados   Autor   Respuestas   Vistas   Último mensaje 
AYuda con script en bash

en Programación

isma3l

5

1260

Sab May 19, 2012 11:19 am

niky45 Ver último mensaje

Ayuda con script en Bash

en Programación

muse

4

1109

Sab Abr 18, 2015 7:34 pm

cargoan Ver último mensaje

[BASH] Ayuda con un shell script

en Programación

Rodri_521

8

2296

Mié Jul 15, 2009 6:00 pm

akodo Ver último mensaje

Ayuda con script en bash [Solucionado]

en Programación

ramonovski

5

1192

Jue Feb 16, 2012 7:35 am

ramonovski Ver último mensaje

Ayuda con script basico en BASH

en Sistema

nico1080p

2

280

Mar Jul 03, 2018 3:37 am

nico1080p Ver último mensaje



¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group :: Style based on FI Subice by phpBBservice.nl :: Todos los horarios son UTC + 1 hora [ DST ]
Traducción al español por Huan Manwë
phpBB SEO