Script shell pour connaitre le code HTTP d’une page web

J’ai eu besoin de faire rapidement et surtout simplement un script pour avoir le header HTTP d’un fichier d’urls. Dans mon cas le plus simple était de faire un script shell et de lui donner à manger un fichier d’url. Couplé à Curl, on peut simplement avoir une masse de résultats facile à lire.

D’abord la commande curl qui permet d’avoir le header HTTP

curl --header -k https://monsite.fr/page.html

HTTP/1.1 410 Gone
Date: Wed, 23 Oct 2019 20:32:02 GMT
Server: Apache/2.4.25
Content-Type: text/html; charset=iso-8859-1

Ce qui m’intéressait était le code HTTP, donc avec un grep on peut extraire la ligne qui nous intéresse

curl --header -k https://monsite.fr/page.html | grep HTTP

De fil en aiguille en faisant un script qui lisait un fichier ligne par ligne, et ensuite appliquait la commande ci-dessus, et en insérant le résultat de la commande dans un fichier nous obtenons un fichier de résultats exploitable, voici le script ci-dessous :

#!/bin/bash
file="/home/creatissus/url.txt"

truncate -s 0 out.txt
while IFS= read line
do
header="$(curl --head -k "$line" | grep HTTP)"
echo "$line $header" >> out.txt
done <"$file"

Nous obtenons un fichier où chaque ligne est l’url suivi du code HTTP. Pour finir extrayons les ligne contenant le code 404 :

grep 404 url.txt > 404.txt

Et voilà j’espère que cela vous a plu et que ce script vous soit utile.

Retour en haut