CheckSites CONCLUÍDO

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)" admin@example.com

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.

Andamento no GitHub (issues)

Painel em tempo real com as issues mais recentes do repositório.

abertas (amostra): -- fechadas (amostra): -- base: -- ultimas issues

carregando andamento...

Resultados reais

Reescrita em Bash do utilitário checksites para validar em lote status de sites em servidores cPanel/WHM e Plesk, com detecção de falhas DNS, HTTP e padrões de conteúdo crítico.

Arquitetura e organização

Execução e operação

O projeto segue fluxo reprodutível de execução com validação técnica em ambiente de produção/similar.

Screenshots

Falar sobre este projeto

Aplique este modelo no seu ambiente e acelere a entrega com consistência técnica.