web-dev-qa-db-fra.com

Comment obtenir une réponse de n'importe quelle URL?

On m'a demandé d'écrire un script Shell Pour vérifier si une URL est UP/Working ou non pour mon projet.

J'ai essayé de trouver des indices sur Internet, mais tout ce que j'ai obtenu est de vérifier si l'URL existe ou non.

J'ai d'abord essayé avec 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

Ma prochaine tentative a été avec 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

Mais, les deux vérifient l'existence de l'URL et non la réponse.

24
Akash

curl -Is http://www.yourURL.com | head -1 Vous pouvez essayer cette commande pour vérifier n'importe quel code URL.Status 200 OK signifie que la demande a réussi et que l'URL est accessible.

Vous pouvez également tester la disponibilité des URL et obtenir le code de réponse à l'aide de la commande telnet

telnet www.yourURL.com 80

80 est le numéro de port.

22
Thushi

Vous pouvez faire ce qui suit

#!/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

Les instructions if ne sont pas nécessaires cependant, je les mets ici juste pour illustrer le flux du script. enter image description here

5
Valentin Bajrami

La chose suivante a fonctionné pour moi ....

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

J'ai essayé de ce que @THUSHI a écrit.

1
Abhishek Tiwari

Si vous ping l'URL, cela vous donnera également une réponse

ping -c 5 www.google.com

-c comptera jusqu'à l'expiration du délai de 5.

À la lumière de ce qui m'a été conseillé, nmap peut fonctionner si son package est installé sur votre système. curl serait une meilleure option, mais néanmoins voici un exemple utilisant nmap:

nmap -p 80 -sT www.google.com

0
ryekayo

La plupart du temps, curl ne fonctionne pas sur https si vous voulez vérifier, vous pouvez vérifier via "curl --version" vous ne verrez pas l'option https dans ce cas, vous pouvez utiliser ci-dessous

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

0
Yanish Pradhananga