Como obter uma resposta de qualquer URL?

14

Fui solicitado a escrever um script de shell Para verificar se um URL é UP / Working ou não para meu projeto.

Eu tentei encontrar algumas dicas pela internet, mas o que eu consegui foi verificar se a URL existe ou não.

Eu tentei pela primeira vez com wget .

wget -S --spider https://genesis-dev.webbank.ssmb.com:21589/gop-ui/app.jsp 2>&1 | awk '/^  /'
if [ $? -ne 0 ]
then echo "Server is UP"
else
echo "Server is down"
fi

Minha próxima tentativa foi com curl .

curl -ivs  https://genesis-dev.webbank.ssmb.com:21589/opconsole-sit/opconsole.html#
if [ $? -ne 0 ]
then echo "Server is UP"
else
echo "Server is down"
fi

Mas ambos estão verificando a existência da URL e não a resposta.

    
por Akash 07.08.2014 / 15:16

6 respostas

14

curl -Is http://www.yourURL.com | head -1 Você pode tentar este comando para verificar qualquer URL.Código de status 200 OK significa que a solicitação foi bem-sucedida e a URL está acessível.

Você também pode testar a disponibilidade de URL e obter o código de resposta usando o comando telnet

telnet www.yourURL.com 80

80 é o número da porta.

    
por 07.08.2014 / 15:39
4

Você pode fazer o seguinte

#!/bin/bash

read -p "URL to check: " url
if curl --output /dev/null --silent --head --fail "$url"; then
  printf '%s\n' "$url exist"
else
  printf '%s\n' "$url does not exist"
fi

As instruções if não são necessárias, coloco-as aqui apenas para ilustrar o fluxo do script.

    
por 07.08.2014 / 15:58
0

Se você ping da URL, isso também lhe dará uma resposta

ping -c 5 www.google.com

Onde -c contará até que o tempo limite de 5 expire.

À luz do que fui aconselhado, nmap poderá funcionar se você tiver o pacote instalado em seu sistema. curl seria uma opção melhor, mas não obstante, aqui está um exemplo usando nmap :

nmap -p 80 -sT www.google.com

    
por 07.08.2014 / 16:03
0

A seguinte coisa funcionou para mim ....

  status="$(curl -Is http://www.yourURL.com | head -1)"
  validate=( $stats )
  if [ ${validate[-2]} == "200" ]; then
      echo OK
  else
      echo NOT RESPONDING
  fi

Eu tentei do que @THUSHI escreveu.

    
por 25.12.2016 / 12:58
0

Na maioria das vezes, o curl não funciona em https, se você quiser verificar, pode verificar através de "curl --version" você não verá a opção https nesse caso, você pode usar abaixo

wget --post-data '{"name":"Radha", "Car": "Jaquar"}' --header "Content-Type: application/json" --no-check-certificate https://yourrequiredURI

    
por 18.10.2018 / 11:50
-2
status="curl \"${server}:${port}\""  >/tmp/tmp.txt
host_check='grep "<html" /tmp/tmp.txt'
    
por 05.04.2017 / 12:02