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