Verificar se site está online via linha de comando
Existem várias formas de se verificar se um site está online ou offline via linha de comando. Nesta dica apresentarei a solução usando
curl.
Digite:
curl -Is https://www.vivaolinux.com.br | head -1
HTTP/2 200
Se o site estiver online, uma mensagem de status HTTP será retornada. Se ele estiver offline, não haverá retorno.
Então vamos aproveitar e criar um pequeno shell script para realizar a tarefa:
vim ~/bin/checar-site
Adicionar o seguinte conteúdo:
#!/bin/bash
URL=$1
RESULT=$(curl -Is $URL | head -n 1)
# cores
RED='\033[0;31m'
GREEN='\033[0;32m'
NOCOLOR='\033[0m'
if [ "$RESULT" ] ; then
printf "${GREEN}Online${NOCOLOR}"
else
printf "${RED}Offline${NOCOLOR}"
fi
Tornar o script executável:
chmod +x ~/bin/checar-site
E executar:
~/bin/checar-site https://www.vivaolinux.com.br
Até a próxima!
Outras dicas deste autor
Guia de Certificação Linux
Agendando tarefas no cron com horário aleatório
Convertendo varchar em date no MySQL
Python Tricks - receba 1 dica de Python por dia no email
Como reproduzir áudio no Android via linha de comando
Leitura recomendada
Obtendo um domínio para o seu computador usando conexão ADSL
Lendo setas do teclado em shell script
Reexecutando comandos do console
Shell - Encontrando erros
Funções em Shell Script
Comentários
Gostei. Mas apliquei o meu estilo.
#!/bin/bash
[[ $1 = "" ]] && echo && echo -e "\033[1;31m -> URL Não Especificada! \033[0m" && echo && exit
[[ `curl -Is $1 | head -n 1` ]] && echo && echo -e "\033[1;34m -> Online \033[0m" && echo
[[ ! `curl -Is $1 | head -n 1` ]] && echo && echo -e "\033[1;33m -> Offline \033[0m" && echo
___________________________________
Conhecimento não se Leva para o Túmulo.
# Contribuições
# Versão sem uso de pipe:
curl -o /dev/null -s -w "%{http_code}\n" URL
# Usando o wget
wget --server-response --spider --quiet URL 2>&1 | awk 'NR == 1 {print $2}'