Voltar para blog

Automatizando acesso ao Plesk via CLI: escopo Bash, token e função resiliente

19/12/2025 · 2 min · Plesk

Compartilhar

Gerar URL de login do Plesk via terminal é uma automação simples, mas os erros mais comuns em Bash tornam o comando frágil em produção. Neste artigo, mostro o que falhou no modelo com alias e como transformei em função confiável para uso diário em operações.

Erro inicial e por que acontece

Tentativa problemática:

alias plesklogin = token=$(plesk login | cut -d/ -f4) || echo "https://0.0.0.0:8443/$token"

Falhas técnicas:

  1. alias não aceita espaços em =;
  2. expansão de variável fora do contexto esperado;
  3. || executa na falha, não no sucesso;
  4. sem controle de retorno do comando plesk login.

Modelo correto: função com fluxo explícito

plesklogin() {
  local host="${PLESK_HOST:-your-server-ip}"
  local raw token

  raw="$(plesk login 2>/tmp/plesklogin.err)"
  if [ $? -ne 0 ] || [ -z "$raw" ]; then
    echo "Erro ao gerar token de login." >&2
    cat /tmp/plesklogin.err >&2
    return 1
  fi

  token="$(printf '%s' "$raw" | awk -F/ '{print $NF}')"
  if [ -z "$token" ]; then
    echo "Token vazio ou formato inesperado: $raw" >&2
    return 1
  fi

  echo "https://${host}:8443/${token}"
}

Boas práticas que adotei

1) Evitar parsing frágil

Se o formato de saída do Plesk mudar, cut -d/ -f4 quebra. Prefiro extrair o último segmento com awk -F/ '{print $NF}' e validar retorno.

2) Tratar erro de permissão

plesk login pode falhar por usuário sem privilégio administrativo. Sempre propague erro com return 1.

3) Não logar token sem necessidade

Token de login é sensível. Evito salvar em histórico/log persistente.

Integração com clipboard e browser (opcional)

Linux com xclip:

plesklogin | tee /tmp/plesk-url.txt | xclip -selection clipboard

Abrir direto no navegador:

xdg-open "$(plesklogin)"

Persistência da função

Adicionar em ~/.bashrc:

nano ~/.bashrc
source ~/.bashrc

Para Zsh:

nano ~/.zshrc
source ~/.zshrc

Endurecimento para ambiente multiadmin

Para times com múltiplos administradores, adiciono guardas para evitar uso sem contexto:

plesklogin() {
  [ \"$(id -u)\" -eq 0 ] || { echo \"Execute como root ou usuário autorizado\" >&2; return 1; }
  command -v plesk >/dev/null 2>&1 || { echo \"plesk CLI não encontrada\" >&2; return 1; }
  # restante da função...
}

Também removo arquivo temporário de erro após execução para não deixar rastro:

rm -f /tmp/plesklogin.err

Validação pós-implementação

Checklist que uso:

  1. função retorna URL válida em shell limpo;
  2. função falha com código não-zero quando plesk login falha;
  3. token não fica salvo em histórico;
  4. execução funciona em bash e zsh no host operacional.

Conclusão

Trocar alias por função foi o ponto que transformou automação instável em ferramenta operacional confiável. Em shell, escopo de variável, parse robusto e tratamento explícito de falha são o que separa atalho rápido de rotina profissional.

CC BY-NC

Este post está licenciado sob CC BY-NC.

Comentários

Participe da discussão abaixo.