DICAS UNIX BRASIL

Recuperando um ldap com problemas ( base corrompida )

Servidores e redes elétricas são sempre um problema. Um cliente que tenho sempre tem este tipo de problema e vira e mexe alguma coisa em um servidor corrompe por causa disto. 
Bom, um dos servidores dele reiniciou várias vezes no final de semana, por panes elétricas e hoje, recebi uma ligação que ninguém conseguia conectar ao email .

Ao chegar ao servidor e olhar os logs, notei que havia sempre problemas na consulta da base ldap. 
Procurei o processo do servidor ldap e ele não estava lá ... pronto, achei o famigerado problema.

De cara, a primeira coisa a ser feita, é parar o processo do ldap. Como era um CentOS: 

# service ldap stop 

Pronto, agora é começar a trabalhar, e tentar recuperar a base ldap. No CentOS por ser baseado em um Red Hat, o comando para recuperar a base é : 

# /usr/sbin/slapd_db_recover -h /var/lib/ldap

Neste ponto, se você for sortudo, como eu, a coisa já está resolvida. É só reincializar o processo do ldap e todos os processos que utilizam dele, e aproveitar o seu servidor de volta. 

Mas, e se o servidor não voltar ? O que faço. 

Primeira coisa, prepare-se, porque daqui em diante a coisa fica hardcore, principalmente se você não mantém uma política de backup efetiva do seu ldap. 

Pare novamente o ldap server e faça uma cópia do estado atual do mesmo : 

# tar -cvzf ldap.tar.gz /var/lib/ldap 

Pronto, feito isto guarde isto aí em lugar bem seguro, porque caso haja algum problema, você pode recuperar o estado anterior. 

Agora, é rodar novamente os comandos para tentar recuperar a base : 

# /usr/sbin/slapd_db_recover -h /var/lib/ldap

Pronto, agora é tentar rodar o comando para mandar sua base ldap para um arquivo : 

# slapcat -l ldap.ldif

Agora é olhar se o seu arquivo ldif contém todas as entradas do seu antigo ldap. 
Caso não encontre, é chegar ao modo desespero, pois você vai ter que rodar a recuperação da base do ldap em modo catastrófico :

# /usr/sbin/slapd_db_recover -h /var/lib/ldap -v -c 

Rode novamente o slapcat e tenha certeza que não houve nenhum erro. 

A partir daí, é recuperar a  base de dados. Limpe o diretório do ldap e execute o comando : 

# slapadd -l lap.ldif 

Pronto, depois é recuperar as permissões do diretório : 

# chown -R ldap:ldap /var/lib/ldap

E reiniciar o ldap. A partir daí todos os processo que o usam estaram novamente em funcionamento. 

Caso todos os passos acima falhem .... é melhor mesmo que tenha um backup da base ... 

 

 

Consulta de comandos rápida em um wallpaper

Dúvidas em algum comando ? Precisa rapidamente lembrar uma coisinha e sua memória está falhando ?

A solução para isto é algum remédio bom de memória ou então, alguma fonte de consulta rápida.
O Aurélio mantém o "Canivete Suiço do Shell" que quebra um galhão quando precisamos de algo.
Além disto, a um tempo atrás ele lançou um pdf com os comandos em uma folha, mão na roda para ficar andando com o mesmo, e caso precisar consultar.

Mas esta semana o ViniciusKMax soltou no twitter dele isto aqui. Uma forma interessante de tornar este processo mais rápido.

Deixei disponível o papel de parede no meu Dropbox ou então, você pode baixar diretamente aqui.

Desabilitando consultas DNS no MySQL

Se em algum ambiente você estiver com algum problema relacionado a resolução de nomes no MySQL, é só efetuar um dos seguintes passos para desabilitar a consulta DNS:

  • Adicione no seu arquivo my.cnf a diretiva skip-name-resolve ou
  • Adicione na linha de comando o seguinte argumento --skip-name-resolve

Lembrando que ao desabilitar a resolução DNS, você terá sempre que adiconar as permissões com o ip, ou seja, se você adicionar o localhost do seu servidor, ele será 127.0.0.1 .

Direto daqui.

 

Salvando o código fonte em um html no VIM

Está editando um código no VIM e quer aproveitar a sintaxe colorida que o mesmo fornece, bem como toda a identação em uma versão em HTML ?

Facinho, facinho :)

Digite o seguinte comando no VIM : 

:TOhtml

Salve o arquivo com o :w e feche a janela com o :q para voltar para o arquivo que você estava editando. 

Se você estiver editando um arquivo de nome algo.c, ele irá criar um arquivo de nome algo.c.html

Problemas com acesso a porta 25 no seu provedor ? Use um tunel ssh

Se você está em algum lugar onde a porta 25 está bloqueada, mas ao mesmo tempo você tem o ssh liberado, use o seguinte comando:

 

ssh -fNg -L 2525:smtp.seuprovedor.com:25 cerebro@seussh.com

Aí, é só fazer do seguinte modo. Ou você configura seu cliente de email com as seguintes configurações : 

Host: localhost
Portal: 2525

Ou então, use o telnet para testar a conexão. 

[ataliba@neo ~]$ ssh -fNg -L 2525:aspmx.l.google.com:25 cerebro@sverige.freeshell.org
cerebro@sverige.freeshell.org's password:
[ataliba@neo ~]$ telnet localhost 2525
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mx.google.com ESMTP vu18si14667357icb.20
quit
221 2.0.0 closing connection vu18si14667357icb.20
Connection closed by foreign host.

E se o ssh não estiver liberado ? Bão, tem solução. Como você está vendo sou membro da SDF que fornece conexão ssh na porta 443.
Ou seja, se  o ssh está ouvindo em mais de uma porta ( tem um post sobre isto aqui ). E porque a porta 443 ?
Porque a maioria dos proxys não trata muito bem esta porta do http seguro. Aí, ele fica em geral com um nat fora do proxy, e aí nois usa para estes fins, porque nois é espertu hahahahaha 

ssh -fNg -L 2525:smtp.seuprovedor.com:25 cerebro@seussh.com -p 443 

[ataliba@neo ~]$ ssh -fNg -L 2525:aspmx.l.google.com:25 cerebro@sverige.freeshell.org
cerebro@sverige.freeshell.org's password:
[ataliba@neo ~]$ telnet localhost 2525
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mx.google.com ESMTP vu18si14667357icb.20
quit
221 2.0.0 closing connection vu18si14667357icb.20
Connection closed by foreign host.

Pronto, agora é só se divertir :)

 

Ajustando as datas dos arquivos

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
UNIX GURU UNIVERSE

DICA UNIX[bb]
Dica Unix 2962 - 17 de março de 2010
http://www.ugu.com/sui/ugu/show?tip.today
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Ajustando as datas dos arquivos

Para fazer um arquivo parecer mais velho.

Use o comando touch -t para mudar o time stamp de um arquivo:

touch -t ccyymmddhhMMSS arquivo

Com o comando touch e esta opção você pode manipular as datas dos seus arquivos facilmente.

Esta dica é generosamente suportada por: deepak.singla@ehpt.com

----------------------------------------

Para assinar: http://www.ugu.com/sui/ugu/show?tip.subscribe
Para sair: http://www.ugu.com/sui/ugu/show?tip.unsubscribe
Para enviar uma dica: http://www.ugu.com/sui/ugu/show?tip.today
======================================
DECLARAÇÃO: TODAS AS DICAS DE UNIX SÃO PROPIEDADE DA UNIX GURU UNIVERSE E NÃO SÃO PARA SER VENDIDAS, IMPRESSAS OU USADAS SEM O CONSENTIMENTO POR ESCRITO DA UNIX GURU UNIVERSE.
TODAS AS DICAS SÃO "USADAS POR SEU PROPRIO RISCO". UGU ADVERTE PARA
TESTAR TODAS AS DICAS EM UM AMBIENTE QUE NÃO ESTEJA EM PRODUÇÃO. Unix Guru Universe - www.ugu.com - tips@ugu.com - Copyright 1994-2010
======================================

Resolvendo o problema de NO_PUBKEY / GPG error no Apt-Get

Esta semana um amigo teve um problema com o Debian, em que todas as vezes em que ele precisava usar o apt-get o mesmo dava um erro relacionado a chave pública ( the public key is not available ).

Para resolução do problema, levando-se em conta que tivemos a seguinte tela de erro abaixo: 

W: GPG error: ftp://ftp.debian.org/ testing Release:

The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 010908312D230C5F

W: There is no public key available for the following key IDs:
010908312D230C5F

É só efetuar a seguinte série de comandos no seu Debian:

# gpg --keyserver pgpkeys.mit.edu --recv-key 010908312D230C5F
# gpg -a --export 010908312D230C5F | sudo apt-key add -

E seja feliz :)

Sabendo qual o processo está monopolizando sua CPU

Alto uso de CPU no seu Desktop ou servidor ?

Use os comandos abaixo para tentar descobrir qual é o processo ou processos que estão monopolizando sua CPU.

Achando os TOP 10 : 

# ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10

Ou para ver todos os processos em ordem de maior uso : 

# ps -eo pcpu,pid,user,args | sort -r -k1 | less 

 

Base do RPM com problemas ? Veja como recuperar ...

Nos sistemas baeados no Red Hat ( rhel/Fedora/CentOS ) usamos o rpm e o yum para instalar e atualizar os pacotes. Caso haja algum problema com a base de dados do rpm ( por algum motivo ela foi corrompida ), isto vai causar problemas na funcionalidade do rpm e do próprio yum.

Antes de executar os passos que aqui estão sendo mostrados, mate todos os processos que possam estar acessando sua base rpm ( o rpm e algum processo ligado ao yum e execute os seguintes passos.

Primeiro, faça o backup da sua antiga base de dados do rpm,  que em geral está em /var/lib/rpm

[ataliba@neo ~]$ ls -lah /var/lib/rpm
total 120M
drwxr-xr-x.  2 root root 4.0K Feb 13 12:04 .
drwxr-xr-x. 60 root root 4.0K Feb 13 09:23 ..
-rw-r--r--.  1 root root  11M Feb 13 09:23 Basenames
-rw-r--r--.  1 root root  12K Feb 11 22:23 Conflictname
-rw-r--r--.  1 root root  24K Feb 13 14:15 __db.001
-rw-r--r--.  1 root root 240K Feb 13 14:15 __db.002
-rw-r--r--.  1 root root 1.3M Feb 13 14:15 __db.003
-rw-r--r--.  1 root root 536K Feb 13 14:15 __db.004
-rw-r--r--.  1 root root 4.1M Feb 13 09:23 Dirnames
-rw-r--r--.  1 root root  21M Feb 13 09:23 Filedigests
-rw-r--r--.  1 root root  44K Feb 13 09:23 Group
-rw-r--r--.  1 root root  40K Feb 13 09:23 Installtid
-rw-r--r--.  1 root root 160K Feb 13 09:23 Name
-rw-r--r--.  1 root root  48K Feb 13 09:11 Obsoletename
-rw-r--r--.  1 root root  87M Feb 13 09:23 Packages
-rw-r--r--.  1 root root 1.3M Feb 13 09:23 Providename
-rw-r--r--.  1 root root 348K Feb 13 09:23 Provideversion
-rw-r--r--.  1 root root  12K Nov  5 00:52 Pubkeys
-rw-r--r--.  1 root root 956K Feb 13 09:23 Requirename
-rw-r--r--.  1 root root 544K Feb 13 09:23 Requireversion
-rw-r--r--.  1 root root    0 Nov  4 22:43 .rpm.lock
-rw-r--r--.  1 root root 320K Feb 13 09:23 Sha1header
-rw-r--r--.  1 root root 160K Feb 13 09:23 Sigmd5
-rw-r--r--.  1 root root  12K Feb 10 21:14 Triggername

Agora, é fazer o backup do estado atual da sua base de dados rpm.

# cd /var/lib
# tar -cvzf rpm.tar.gz rpm

Agora é só efetuar os comandos abaixo para fazer a recuperação da sua base rpm. 

# cd /var/lib/rpm
# rm -f __db*
# rpm --rebuilddb -vv

Efetuado isto, sua base já está recuperada ( para testar é só usar o yum, como por exemplo, o yum update ou até um comando como o rpm -qa gimp  ).

Caso isto não tenha resolvido, veja diretamente no erro que o programa executado está mostrando ou nos logs de sistema ( /var/log/messages ). 

Como rodar uma iso de dvd no Linux ( Xine )

Copiou um DVD de um amigo seu  para uma iso e está sem mídia para gravar ?

Jeito fácil de ver o dvd sem precisar de transformar queimar a iso em um DVD: 

$ xine dvd:caminho_do_arquivo/arquivo.iso

ou 

$ gxine dvd:caminho_do_arquivo/arquivo.iso

Como exemplo, caso a iso do DVD esteja no seu Desktop: 

$ xine dvd:/home/(user)/Desktop/arquivo.iso

E aí, é só se divertir. 

Páginas