De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

Resolucao de problemas

Colaboração: Daniel Duclos

Data de Publicação: 06 de Dezembro de 2001

Aqui vao algumas dicas simples e truques de resolucao de problemas em informatica que aprendi e me ajudam todos os dias. Espero que seja util. Se nao for, flames para <daniduc (a) cybershark net>.

1. Leia os logs, leia os erros

Principal: na maioria dos casso o computador te diz qual é o problema!! Serio! Entao, leia os logs e leia as mensagens de erro! Elas ajudam muito a ter uma nocao do que esta ocorrendo! Leia a saida do comando no shell, entre no /var/log e leia os logs que estao la. Veja, a maioria das vezes isso te ajuda muito!

Exemplo:

Situacao: eu tenho um servidor conectiva linux e resolvi atualizar meu bind! A atualizacao ocorreu, mas notei que meu bind nao mais respondia!!!

Resolvi executar o script de incializacao na mao e ver o que acontecia:

  [root@ace init.d]# ./named start
  Iniciando named: named: -u not supported on Linux kernels older than
  2.3.99-pre3 when using threads
  [FALHOU]
  [root@ace init.d]#

Opa, o erro me diz claramente o que aconteceu! A opcao de incializacao -u do named nao é suportada com meu kernel. Abri o script e editei a opcao de inicializacao, que estava assim:

  daemon named -u named $CHROOT

para

  daemon named $CHROOT

<eu sei que isso incia o named como root e nao é o certo, é so um exemplo>

E reiniciei o rapaz:

  [root@ace init.d]# ./named start
  Iniciando named:                                           [  OK  ]
  [root@ace init.d]#

Mas ele ainda nao resolvia os nomes... opa! algo errado! Vamos verificar:

  [root@ace init.d]# ./named status
  named inativo mas seus subsistemas trancados
  [root@ace init.d]#

Arra! Mais um erro! E agora??? Ler os logs! =)

  [root@ace init.d]# tail -f /var/log/messages
  Nov 24 16:43:23 ace named[3829]: couldn't open pid file
  '/var/run/named/named.pid': Permission denied
  Nov 24 16:43:23 ace named[3829]: exiting (due to early fatal error)

Ahhhhh... erro de permissao nao permite o named inciar corretamente! ele tentou criar o arquivo named.pid no diretorio '/var/run/named/ e nao conseguiu!!

Mudamos o dono do diretorio para root e pronto:

  chown root: /var/run/named/

O named levanta direitinho:

  [root@ace init.d]# ./named start
  Iniciando named:                                           [  OK  ]
  [root@ace init.d]# ./named status
  named (pid 4215 4220 4219 4214 4210) está rodando...
  [root@ace init.d]#

2. Leia a documentacao. Serio. Leia. De novo.

Todos sabem que existem FAQ's, README's e manuais. Quando nos viravamos no DOS e no windows, ler manual era coisa de coxinhas <sim, eu era um moleque>. Clique em next e pronto, o programa esta instalado, e ninguem lia os readme.

Mas agora somos profissionais da area, usamos Linux && UNICES, os programas sao complexos e ja nao tao facil assim.

Voce teve problemas com um programa? *va ate o site do programa* e leia os docs dele. Sim, parece obvio, mas isso salva muitas vidas e nem todo mundo faz. Duvida de sendmail? www.sendmail.org! Apache?? www.apache.org! La tem toneladas de documentacao, exemplos, FAQ's e o escambau. Nada melhor do que ir direto aa fonte!!

Exemplo:

Eu recem instalei um postfix. Meu chefe quer que os mails sejam fulano@dominio como 99% dos mails, e nao fulano@maquina.dominio. Putz, nao sei fazer isso! E agora? Vamos ver o que o site da postfix me diz <http://www.postfix.org/> Chego la e tem um link chamado: Documentation, Howtos and FAQs. esse mesmo! Clico la. Encontro o link:

  * Configuration. Postfix configuration, basic and advanced.

Esse mesmo. *click*. Lendo a pagina, encontro logo no comeco um link:

;What domain to use in outbound mail - Cliquemos.

  "The myorigin parameter specifies the domain that appears in mail that is
  posted on this machine. The default is to use the local machine name,
  $myhostname, which defaults to the name of the machine. Unless you
  are runninga really small site, you probably want to change that into
  $mydomain, which defaults to the parent domain of the machine name.

Examples:

  myorigin = $myhostname (default)
  myorigin = $mydomain (probably desirable)"

Problema resolvido!!

Ah, e use o search engine do site!!!! Muitas vezes o programa contem README's, leia-os! Serio mesmo =)

3. Use o google. google is your friend.

E se a mensagem de erro nao faz nenhum sentido pra voce? E se eu nao sei o site do desenvolvedor do programa? E se a FAQ nao resolve meu problema?? Google is the answer. Google é o melhor search engine que ja encontrei! Ele tem um sistema de rankeamento muito bom, e em geral o que voce quer esta no comeco. Nao deixe a aparencia simples dele enganar voe <http://www.google.com>

Exemplo 1:

Quero ir no site do bind... e *nao* é www.bind.org <nesse tem um link pro site de verdade, mas suponhamos que nao tem>. Jogue simplesmente "bind" no google e o site correto vira <http://www.isc.org/products/BIND/>

Exemplo 2:

Jogue o erro no google! Sim, copie e cole o erro e faca uma busca! Isso muitas vezes retorna a solucao! elimne da mensagem as partes especificas, como o numero do pid, ou o nome da maquina, isso a torna mais geral e facilita. Ja vi o google achar respostas no site do fabricante que nem o proprio search engine do fabricante acha!!

4. Documente os problemas

Resolveu um problema? Documente! Anote de alguma forma, guarde o mail com a solucao, escreva no vi, no word, no ed, como for. Anote eum caderno. Imprima. Nao tem importancia. Mas confie em mim: o problema vai voltar <pode ser em outra maquina, pode ser em outro emprego> e voce nao vai lembrar como resolveu! Anote e depois *consulte* o que anotou <ja vi pessoas quebrarem a cabeca resolvendo um problema e depois descobrir que ja tinham resolvido e *notado*, era so ter lido a propria documentacao). crie um dir de documentacao. Sim, da preguica. Mas salva vidas! Ah, e se quiser, depois, divulgue e compartilhe as suas dicas =)

5. Aprenda ingles

Essa é a mais dificil e a menos especifica das minhas dicas, mas nao tem jeito: o conhecimento humano esta, na usa maioria, em ingles. Hoje em dia a lingua universal é o ingles. =/ Cada um tem um metodo para isso, entao vou ficar na minha. =//

6. Listas

Claro, ler as listas ajuda. Perguntar nas listas tambem. Ler o historico da lista tambem. Mas uma coisa que ajuda é tentar realmente resolver os problemas dos outros, mesmo que voce nao saiba a resposta. Leia o mail do outro e entre no site do fabricante, procure a FAQ q responde aquela duvida, enfim, gaste um tempo <o quanto vc puder, claro. Eu dedico muito de fim de semana pra fazer isso, por exemplo> em um problema que vc nao sabe a resposta e nao é seu. Isso é util de varias maneiras. Voce pratica resolver problemas, e como tudo na vida, a capacidade de resolucao de problemas melhora com a pratica. E voce se beneficia. Outra coisa: voce aprende coisas novas que voce pode precisar! Alem de ajudar os outros, o que é bom ;) E, de novo, compartilhe o que aprendeu!

do touch 200112$n.SRC done

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Daniel Duclos