Voltar para blog

Automação de banco de dados via CLI no DirectAdmin: desafios e soluções

08/10/2025 · 2 min · DirectAdmin

Compartilhar

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

  1. Extrai usuário atual com pwd + cut.
  2. Cria banco ${USER_NAME}_db.
  3. Cria usuário ${USER_NAME}_user.
  4. Aplica privilégios no banco.
  5. 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

  1. Valide se o usuário extraído do caminho é o dono correto da conta.
  2. Evite expor senha root no histórico do shell.
  3. Padronize nomenclatura de banco e usuário por ambiente.
  4. 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.

CC BY-NC

Este post está licenciado sob CC BY-NC.

Comentários

Participe da discussão abaixo.