Não há necessidade de curl .
Com o Wget, adicionar --spider significa que você deseja enviar uma solicitação HEAD (em oposição a GET ou POST ).
Esta é uma ótima maneira minimalista de verificar se uma URL responde ou não. Você pode, por exemplo, usar isso em verificações com script, e a operação HEAD fará com que você não coloque nenhuma carga nem na rede nem no servidor web de destino.
Informação do bônus: Se o Wget receber um erro HTTP 500 do servidor quando ele executar o HEAD , ele passará a executar um GET no mesmo URL. Eu não sei o motivo desse design. Esta é a razão pela qual você pode ver uma solicitação HEAD e a GET sendo executada no servidor. Se nada estiver errado, apenas uma solicitação HEAD será executada. Você pode desativar essa funcionalidade com a opção --tries para limitar o Wget a apenas uma tentativa.
Em suma, recomendo isso para testar se uma URL está respondendo:
# This works in Bash and derivatives
wget_output=$(wget --spider --tries 1 $URL 2>&1)
wget_exit_code=$?
if [ $wget_exit_code -ne 0 ]; then
# Something went wrong
echo "$URL is not responding"
echo "Output from wget: "
echo "$wget_output"
else
echo "Check succeeded: $URL is responding"
fi