CONCLUÍDO
Resumo técnico
Este projeto é uma reescrita em Bash do utilitário original cwd (HostGator) para acelerar navegação operacional em servidores cPanel. O script resolve o document root de contas por username ou domain, aceita sufixo de subdiretório (/blog, /wp-admin) e retorna cd válido para ser aplicado no shell atual via eval.
Escopo executado
- Reescrita completa da lógica original (Perl + XML API) para Bash puro.
- Eliminação de dependência de cPanel XML API e autenticação WHM por hash.
- Implementação de busca em múltiplas fontes locais do cPanel (
/var/cpanel/userdata,/etc/userdatadomains,/var/cpanel/users). - Suporte operacional para entrada por usuário, domínio e subdomínio.
- Fallback progressivo para subdiretórios inexistentes (volta para caminho pai válido).
- Instalação automática de wrapper no
.bashrcpara uso com comando curtocwd. - Modos de execução
-q(quiet) e-v(verbose) para automação e troubleshooting.
Arquitetura de resolução de docroot
Fluxo adotado no script para localizar caminho com previsibilidade:
- Tenta interpretar entrada como
usernamede conta cPanel em/var/cpanel/userdata/<user>/. - Procura arquivo exato de domínio dentro do userdata da conta.
- Valida
servername/serveraliasquando o nome não é exato no arquivo. - Consulta índice global em
/etc/userdatadomains. - Faz fallback em
/var/cpanel/users/<user>com leitura de campos DNS. - Em último caso, utiliza
/home/<user>/public_htmlcomo raiz operacional.
Execução prática
# uso básico
cwd [OPTIONS] username|domain[/subdir]
# por usuário
cwd linux
# por domínio
cwd linux.com
# domínio + subdiretório
cwd linux.com/blog
# modo silencioso (scripts)
cwd -q nonexistentuser
# modo verbose (diagnóstico)
cwd -v wrongdomain.com
Wrapper e comportamento de shell
O wrapper resolve o problema clássico de subshell. Em vez de executar cd isolado dentro do script, o comando emite saída para ser avaliada no shell chamador:
# saída gerada pelo script
cd /home/user/public_html
# aplicação no shell atual
output="$(/path/to/cwd.sh domain.com 2>&1)"
eval "$output"
Troubleshooting operacional
# validar presença da conta
ls /var/cpanel/userdata/username
# validar arquivo de domínio
ls /var/cpanel/userdata/username/domain.com
# validar documentroot no userdata
grep documentroot /var/cpanel/userdata/username/domain.com
# checar instalação duplicada do wrapper no bashrc
grep -n "CWD AUTO-WRAPPER" ~/.bashrc
Stack e ferramentas
- Shell Script / Bash
- cPanel/WHM
- Linux
- grep
- sed
- cut
Tags operacionais
- cPanel
- Bash
- CLI
- SysAdmin
Resultado operacional
- Navegação entre contas e domínios em segundos, sem consulta remota a API.
- Maior confiabilidade em cenários de incidente onde serviços cPanel podem estar degradados.
- Redução de tempo de triagem operacional (document root, logs e arquivos web).
- Padronização para equipes de suporte N1/N2/N3 com comando único de navegação.
Andamento no GitHub (issues)
Painel em tempo real com as issues mais recentes do repositório.
live feed
abrir issues no githubcarregando andamento...
não foi possivel carregar as issues agora. abra no github pelo link acima.
Resultados reais
Reescrita em Bash do utilitário clássico cwd para cPanel/WHM, com resolução de docroot por usuário ou domínio, fallback inteligente e instalação automática do wrapper no shell.
Arquitetura e organização
- Shell Script / Bash
- cPanel/WHM
- Linux
- grep
- sed
- cut
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.