Yo uso:
curl -f -s -I "http://example.com" &>/dev/null && echo OK || echo FAIL
-f --fail Falla silenciosamente (sin salida alguna) en errores HTTP
-s --silent Modo silencioso
-I --head Mostrar solo información del documento
Nota:
dependiendo de las necesidades, también puede eliminar la "-I" porque en algunos casos necesita hacer un GET y no un HEAD
curl -sL -w "%{http_code}\\n" "http://www.google.com/" -o /dev/null
-s
=Salida de cURL silenciosa-L
=Seguir redireccionamientos-w
=Formato de salida personalizado-o
=Redirige la salida HTML a/dev/null
Ejemplo:
[~]$ curl -sL -w "%{http_code}\\n" "http://www.google.com/" -o /dev/null
200
Probablemente quitaría el \\n
si tuviera que capturar la salida.
Igual que @burhan-khalid, pero agregó --connect-timeout 3
y --max-time 5
.
test_command='curl -sL \
-w "%{http_code}\\n" \
"http://www.google.com:8080/" \
-o /dev/null \
--connect-timeout 3 \
--max-time 5'
if [ $(test_command) == "200" ] ;
then
echo "OK" ;
else
echo "KO" ;
fi