Automatizar provisionamento de banco via terminal acelera operações em servidores DirectAdmin, mas alguns detalhes de CLI e shell podem quebrar o fluxo se não forem tratados corretamente.
Cenário típico
Você está no diretório de um cliente:
/home/user_name/public_html
E quer criar banco/usuário usando o nome da conta como prefixo.
1) Limitação comum do utilitário da
Dependendo da versão, o binário da não oferece subcomando para criação de banco e pode retornar erro como:
Unknown command 'database'. Please specify one command of: admin, build, config...
Nesses casos, o caminho confiável é executar SQL diretamente via MySQL/MariaDB usando o arquivo de credenciais do DirectAdmin.
2) Armadilha do ! no Bash
Senhas com ! podem disparar expansão de histórico:
-bash: !kL4kie: event not found
Para evitar, escape o caractere (\!) ou estruture aspas corretamente.
3) Comando inline de provisionamento
Exemplo completo em uma linha:
USER_NAME=$(pwd | cut -d'/' -f3) && mysql --defaults-extra-file=/usr/local/directadmin/conf/my.cnf -e "CREATE DATABASE IF NOT EXISTS ${USER_NAME}_db; CREATE USER IF NOT EXISTS '${USER_NAME}_user'@'localhost' IDENTIFIED BY 'MinhaSenhaComplexa\!2026'; GRANT ALL PRIVILEGES ON ${USER_NAME}_db.* TO '${USER_NAME}_user'@'localhost'; FLUSH PRIVILEGES;"
O que esse comando faz
- Extrai usuário atual com
pwd+cut. - Cria banco
${USER_NAME}_db. - Cria usuário
${USER_NAME}_user. - Aplica privilégios no banco.
- Executa
FLUSH PRIVILEGES.
4) Sincronização com o painel
Após criar direto no MySQL, a GUI pode não refletir imediatamente. Force atualização da fila:
/usr/local/directadmin/dataskq
Boas práticas de produção
- Valide se o usuário extraído do caminho é o dono correto da conta.
- Evite expor senha root no histórico do shell.
- Padronize nomenclatura de banco e usuário por ambiente.
- Teste em ambiente de homologação antes de rodar em massa.
Com CLI bem estruturada, você reduz tempo de provisionamento e erros manuais. Dominar Bash, escaping e integração com o fluxo do DirectAdmin é o que garante automação segura em escala.
Este post está licenciado sob CC BY-NC.
Comentários
Participe da discussão abaixo.
Comentários ainda não configurados. Adicione as opções do Cusdis em /assets/json/config/blog-comments-config.json.