No tutorial de hoje vamos ensinar como debugar um comando em shell(terminal linux) com o comando bash -x, para o exemplo vamos utilizar um caso real com o Zextras Carbonio com o zmconfig que não iniciava.
Busca por administrador de seu servidor Linux? Não perca mais tempo! Entre em contato conosco. https://soloweb.com.br/gerenciamento
O parâmetro -x faz o Bash mostrar cada comando que está sendo executado, já com variáveis expandidas, antes de rodar.
É ideal para:
- Debug de scripts
- Diagnóstico de serviços que “não sobem”
- Entender exatamente onde o processo está travando
Para usar basta utiliza-lo antes do comando como o exemplo abaixo:
$ bash -x script.sh
Problema real: zmconfigdctl não subia no Zimbra
Ao tentar iniciar o serviço:
$ zmconfigdctl start
Starting zmconfigd...Failed to start zmconfigd.
Para debugar esse comando basta acessar o usuário zextras e depois executá-lo:
$ bash -x zmconfigdctl start
Quando o comando era debugado o monitor mostrava um certo comando que entrava em loop:
+ /usr/bin/nc -w 15 localhost 7171
Ao executar o comando em loop no terminal informava que o localhost não era localizado então bastava configurar o localhost no arquivo /etc/hosts, acesse o arquivo e configure a seguinte linha:
127.0.0.1 localhost
111.111.111.111 email.dominio.com.br email(exemplo de ip e dominio do servidor)
Com isso basta executar novamente o comando de iniciar o zmconfig e seu carbonio funcionará.
Busca por administrador de seu servidor Linux? Não perca mais tempo! Entre em contato conosco. https://soloweb.com.br/gerenciamento
Tudo isso foi descoberto graças ao debug de comandos shell.
