Resumo técnico
Ferramenta Bash voltada para triagem de disponibilidade em ambiente de hosting compartilhado. O script varre domínios por escopo (todos, por usuário, por revendedor ou domínio único), valida resolução DNS para o servidor esperado, executa checagem HTTP com timeout configurável e classifica problemas por assinatura de conteúdo (default pages, account suspended, database errors, possíveis indícios de comprometimento).
Escopo executado
- Reescrita de utilitário legado em Bash mantendo paridade funcional de opções.
- Compatibilidade operacional com cPanel/WHM e Plesk.
- Modos de execução por escopo (
-a,-u,-r,-d) para triagem direcionada. - Suporte a saída verbosa (
-v) para auditoria completa incluindo domínios saudáveis. - Controle de timeout e backoff por carga do host para evitar agravar servidores sob estresse.
- Normalização de leitura de status HTTP e classificação de incidentes por tipo.
Modos de operação
# todos os domínios (somente problemas)
./checksites.sh -a
# varredura completa com sites OK
./checksites.sh -a -v
# domínio específico
./checksites.sh -d example.com
# todos os domínios de um usuário cPanel
./checksites.sh -u username
# todos os domínios de um revendedor
./checksites.sh -r resellername
# timeout customizado
./checksites.sh -a -t 15
Detecções implementadas
- DNS: domínio inexistente, resolução externa ao servidor, inconsistência de apontamento.
- HTTP: códigos de erro (
403,404,500,502,503), conexões falhas e redirects inesperados. - Assinaturas de conteúdo:
- defaultwebpage.cgi (cPanel default) - Domain Default Page (Plesk default) - Database Error - Account Suspended - Index of / - padrões textuais de comprometimento (hacked, shell, exploit, WebShell)
Proteção por carga do servidor
O script mede load average e pausa execução quando o host está acima do limiar operacional, reduzindo impacto durante incidentes:
Load Average: 15.5, cores: 8
Load Average: 15.5, sleeping for 10 seconds
Se a carga seguir alta após tentativas, o fluxo pede confirmação antes de continuar.
Uso em monitoramento contínuo
# cron horário com alerta por e-mail em caso de falhas
0 * * * * /usr/local/bin/checksites -a > /tmp/sites_check.txt 2>&1 || \
cat /tmp/sites_check.txt | mail -s "Site Issues on $(hostname)" [email protected]
Troubleshooting operacional
# dependências DNS
yum install -y bind-utils
apt-get install -y dnsutils
# cliente mysql para ambientes plesk
yum install -y mysql
apt-get install -y mysql-client
# execução com privilégios adequados
sudo ./checksites.sh -a
Stack e ferramentas
- Shell Script / Bash
- cURL
- dig / DNS utils
- mysql client (Plesk)
- cPanel/WHM
- Plesk
Tags operacionais
- Bash
- Monitoring
- cPanel
- Plesk
Resultado operacional
- Redução do tempo de diagnóstico de indisponibilidade em servidores com múltiplos tenants.
- Padronização da triagem de incidentes DNS/HTTP em NOC/SRE.
- Melhora na previsibilidade de ações corretivas em ambientes cPanel e Plesk.