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:
aliasnão aceita espaços em=;- expansão de variável fora do contexto esperado;
||executa na falha, não no sucesso;- 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:
- função retorna URL válida em shell limpo;
- função falha com código não-zero quando
plesk loginfalha; - token não fica salvo em histórico;
- execução funciona em
bashezshno 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.
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.