sábado, 22 de maio de 2010

A turma do Chaves na TI

Acordei com isso na cabeça. Frases clássicas aplicadas em outros contextos.

"Chavinho lindo meu amor..." 
Chiquinha fazendo engenharia social com o Chaves
"Cale-se, cale-se, cale-se! Você me deixa louco!!!"
Quico tentando fazer o Zabbix parar de enviar mensagens

"Não quer entrar para tomar uma xícara de café?"
Dona Florinda intimando o Professor Girafales a virar a noite no CPD voltando backups

"Quando vai me pagar os 14 meses de aluguel?"
Sr. Barriga ameaçando cortar o serviço de hospedagem de sites do Seu Madruga
 "Foi sem querer querendo..."
Chaves tentando explicar o boot em horário comercial nos 28 servidores de produção ao mesmo tempo

 "Minhas anteninhas de vinil estão detectando a presença do inimigo!"
Chapolin testando o novo Intrusion Detection System (IDS).

segunda-feira, 17 de maio de 2010

Como transferir um arquivo gigante via Internet

Hoje nos deparamos com uma situação complicada de resolver. Um certo banco de dados SQL resolveu ocupar 80% do HD do servidor e precisávamos obter o backup do banco para arquivamento antes de apaga-lo. Acontece que ele estava em um servidor em um datacenter... Como enviar 112GB via Internet? Em menos de 12h? Com um link de 10Mbps/s ? Como gerar o backup do banco se não havia espaço para caber o próprio backup? Pra complicar, não poderíamos deixar nossos dados vagando por ai na Internet sem criptografia.

Bem, a última pergunta é fácil de resolver. Bastou desatachar o banco, clicando sobre ele e "detach".
Primeiro tentamos via FTP, mas ficou tão lento que levaria 8 dias para completar.

Após alguns testes, detectamos que o arquivo ( e outros .mdf em geral) são susceptíveis a uma boa compressão. Mas como não havia espaço para compactar o arquivo no HD, decidimos que a transmissão dos dados deveria ser feita por um canal que comprimisse "on the fly".

Lembramos que tínhamos o OpenSSH for Windows instalado no servidor!
Em um cliente Linux em nossa rede foi trivial:
scp -C usuario@datacenterhost:/cygdrive/c/mssql/data/bigfile.*    .
O -C ativa a compressão.

Depois, utilizamos o MD5 pra confirmar que o arquivo estava ok.

domingo, 16 de maio de 2010

Dropbox!

Dropbox é um serviço para backup online com 2GB grátis! Clique abaixo, cadastre-se e em seguida baixe e instale o programinha. Ele sincroniza automaticamente seus arquivos na Internet, com toda a segurança.
Voce ainda pode acessar seus arquivos no site do dropbox! Altamente recomendado. Backup automático.

https://www.dropbox.com/referrals/NTM3MDA0NzQ5

MG DOS e Linux MG

Em 1997, pouco antes de iniciar o uso do Linux, fiz uma brincadeira com uns amigos. Criei um disco de boot do DOS 6.22 e utilzei um editor hexadecimal para trocar a maioria dos termos em inglês para termos "caipiras". Também, renomeei alguns dos comandos. Assim, tínhamos os comandos oia (dir), cortaarvre (deltree ), cn (chama negocim - cd - call directory) e por ai vai. Era realmente hilário as telas de abertura com as mensagens em "mineirês".

Qualquer hora dessas eu vou recompilar um kernel e o bash trocando as principais mensagens da mesma forma. O fato dos fontes serem abertos permitem essas bobagens.... Será interessante ver um pinguim com um chapeuzinho caipira ou quem sabe trocamos o pinguim por alguma outra ave daqui...

Obviamente, será apenas uma brincadeira, sem fins práticos.

sábado, 15 de maio de 2010

Como liberar o espaço já alocado pelo HD no VirtualBox

O VirtualBox é uma ótima opção para virtualização, quem ainda não conhece, vale a pena testar.

Hoje eu dei uma limpeza geral nas minhas máquinas virtuais ( veja o post anterior), inclusive dentro delas, isto é, apaguei vários dados dos HDs virtuais.

Só que, o espaço uma vez alocado pelo HD virtual não é desalocado quando o
HD diminui. Isto é, digamos que você tinha um HD com 10Gb e 5GB ocupados. Se o HD chegar a ter 7GB o arquivo .vdi ( do HD virtual) vai crescer de 5GB para 7GB. Se você apagar alguma coisa e voltar a ter digamos 4GB, o arquivo .vdi continuará com 7GB! Isso é feito para se evitar fragmentação.

Se você quiser voltar o arquivo para 4GB é necessário fazer o seguinte:

  1. Colocar "zeros" em todos os blocos não utilizados no seu sistema de arquivos. Isso pode ser feito no Windows com o CCleaner marcando a última opção chamada "Apagar espaço livre", que apaga o espaço livre da MFT. No linux, pode-se utilizar o zerofree ( sudo aptitude install zerofree)
  2. No seu sistema hospedeiro utilize o VBoxManage para compactar o espaço vazio.


    cd ~/.VirtualBox/Machines
    VBoxManage modifyhd Windows7.vdi --compact
Não faça isso com frequência, pois irá diminuir a performance da máquina. Também, um "defrag" na máquina virtual antes do procedimento é interessante.

Veja também o post do Paulo Cotta sobre o mesmo assunto, está bem mais completo:
http://cottapaulo.wordpress.com/2010/02/07/otimizando-e-compactando-sua-maquina-virtual-virtualbox-no-ubuntu/

Como achar o maior subdiretório

Você ja deve ter se deparado em uma situação em que precisa descobrir quais dos  subdiretórios está ocupando a maior parte do espaço.
 Hoje, por exemplo, fui dar uma faxina em minhas máquinas virtuais do VirtualBox e queria saber qual das máquinas virtuais estava com mais snapshots.

Veja o que eu fiz:

cd ~/.VirtualBox/Machines
du -ch --max-depth=1

Eis o resultado:

jones@jones-laptop:~/.VirtualBox/Machines$ du -ch --max-depth=1
8,0K    ./Windows2003
24M    ./FW_Alol
216K    ./Windows2003SQL
23M    ./WindowsME
55M    ./FW_NET1
90M    ./FW_NET2
8,0K    ./Ubuntu Server 10.04 PD
244K    ./FW_lan-fw-dmz
256K    ./FW_dmz-fw-net
1,8G    ./WinXP
188K    ./FW_Oi
312K    ./WindowsXP
256K    ./Windows7
4,3G    ./TesteXP
6,3G    total

Usando o comando du ( disk usage) com o parametro --max-depth=1 eu indiquei queria que ele "resumisse" apenas no primeiro nível dos diretórios. Experimente depois com =2, 3, etc. O  -ch mostra o total geral e o resultado em K,M e G. 

quinta-feira, 13 de maio de 2010

Envie sinais para seu Bash script

Você já deve estar acostumado com o famoso comando kill -9 que envia o sinal de KILL para certo processo ou o kill -HUP, que envia um sinal de HangUp e na maioria dos daemons faz com que ele recarregue seu arquivo de configuração.

Mas poucos sabem é que existem vários outros sinais, inclusive alguns livres para serem usados por você em algum propósito especial.

Veja o seguinte código:

#!/bin/bash
 
while true; do
    echo " Hello World again!"
    sleep 3
done


Trata-se de um loop infito que mostra uma mensagem a cada 3 segundos.
Podemos utilizar o comando trap para "interceptar" certos sinais enviados para o processo e executar algum comando quando ao receber o sinal.

Vamos então melhorar nosso script:

#!/bin/bash

trap "echo Saindo...; exit" INT

while true; do
    echo " Hello World again!"
    sleep 3
done


Ao rodar o script, pressione Ctrl-C para interromper o processo. A mensagem "Saindo..." será exibida antes do processo terminar. Isso aconteceu porque tratamos o sinal INT ( Interrupt ).

Outro exemplo interessante é utilizar o sinal USR1, ( User signal 1 ), que é um sinal que voce pode utilizar para qualquer coisa em seu script. Veja:


#!/bin/bash

trap "echo Saindo...; exit" INT
trap "echo Mensagem assincrona!" USR1

while true; do
    echo " Hello World again!"
    sleep 3
done


Rode o script e em outro terminal, ache o PID do seu script e envie o sinal USR1 para ele. Troque testetrap.sh pelo nome do arquivo de seu script.

P=`ps a | grep testetrap.sh | grep -v grep | cut -f2  -d\  `; kill -USR1 $P

Veja no outro terminal que a mensagem aparecerá de forma assíncrona. Pra que serve? Em shell script avançado voce pode tomar ações antes que seu script seja fechado ou implementar funções especiais, como fazer algum salvamento parcial.

Para aprender mais sobre sinais, sugiro a leitura do man kill e o site:  http://en.wikipedia.org/wiki/Kill_%28command%29

segunda-feira, 10 de maio de 2010

Troque o roxo horroroso e lado dos botões do Ubuntu 10.04

O Ubuntu é um sistema operacional que me surpreendeu. Desde a versão 5.04 quando eu o conheci, tenho recomendado a várias pessoas. O visual sempre foi um diferencial, com cores agradáveis, em geral tons de marrom e laranja.

No entanto, na versão 10.04 veio como padrão um lilás ou roxo horroroso...
Além disso, os botões de fechar, maximizar e minimizar foram para o lado esquerdo, no estilo Mac.
Se você também não gostou, veja aqui como mudar:

São 3 locais distintos para se alterar: Tema para seu usuário, Tema do GDM ( tela de login) e Tema do Boot


Tema para seu usuário

Esse é o mais fácil, você pode simplesmente ir em "Sistema - Preferência - Aparência" e escolher um outro.

Se o tema escolhido ainda tiver os botões invertidos troque assim:
  • Abra um terminal ou no alt-f2 e entre com comando:


    gconf-editor
  • Localize "/apps/metacity/general/
  • Edite o “button_layout”e troque o conteúdo para menu:minimize,maximize,close
Se quiser mais opções de temas, vou dar algumas sugestões:
  • Instale o pacote community-themes com o comando:


    sudo aptitude install community-themes
  • Instale os themes do Bisigi Project:


    sudo add-apt-repository ppa:bisigi && sudo aptitude update
    sudo aptitude install bisigi-themes
Tema do GDM

Para trocar o tema do gerenciador de login ( GDM), seria da mesma forma que se trocar para o seu usuário, só que, o para o usuário chamado gdm. No entanto, ele não um usuário interativo que você pode logar.
Por isso, utilize o comando abaixo para "chamar" a mesma janela de configuração de aparência com o usuário gdm:
gksudo -u gdm dbus-launch gnome-appearance-properties
Para trocar o fundo do GDM por outro diferente do padrão do tema, utilize o Ubuntu Tweak.

Ao logar com seu usuário, depois de trocar o tema, se notar um ícone novo de acessibilidade em seu painel, acesse "Sistema - Preferência - Teclado" e desmarque as opções de acessibilidade na aba correspondente.

Tema do Boot
Existem vários softwares para apresentar imagens durante a inicialização do sistema, também conhecidas como "boot splashs". Nos primórdios do Linux, tínhamos apenas letrinhas e nos orgulhávamos delas! Mas, hoje em dia, devido à popularização do Linux, as "figurinhas" são essenciais para não "assombrar" o usúario menos experiente.

Existiram diversas ferramentas pra se mostrar figurinhas. Antigamente elas eram compiladas dentro do kernel! Depois vieram o usplash, bootsplash, splashy,xsplash e o Ubuntu 10.04 começou a utilizar o plymouth.

Bem, se se você é da época do "startx", pode desabilitar os splashs editando o arquivo /etc/grub/grub.cfg e removendo todas as ocorrências da palavra splash que encontrar.

Se quiser utilizar outro tema diferente do roxo "forro de caixão" siga em frente.

Localize alguns temas do plymouth.

aptitude search plymouth-theme-*
Instale o tema desejado, no exemplo, o solar:
aptitude install plymouth-theme-solar
Agora será necessário "ativar" o novo tema ( troque solar pelo tema utilizado, caso necessário):
sudo update-alternatives --install /lib/plymouth/themes/default.plymouth default.plymouth \
/lib/plymouth/themes/solar/solar.plymouth 
sudo update-alternatives --config default.plymouth
Reboot e voilá!

Referências:
http://crashsystems.net/2010/04/changing-plymouth-themes/
http://www.n00bsonubuntu.com/content/install-extra-themes-ubuntu-1004-lts-lucid-lynx
http://cottapaulo.wordpress.com/category/ubuntu/page/2/
http://www.vivaolinux.com.br/dica/Alterar-tema-do-GDM-no-Ubuntu-9.10

Balaio?

Com este post está inaugurado o "O Balaio da Tecnologia da Informação". Será um blog onde vou "jogar" tudo quanto é coisa que achar interessante em TI, mas principalmente dicas e truques que já aprendi ao longo desses anos e que ainda vou aprender.

Pra quem não conhece, balaio é um cesto utilizado na roça pra carregar de tudo. Ultimamente, meu amigo Paulo e eu, que fomos criados no interior, temos utilizado este termo em TI com muita eficiência em várias ocasiões. Por exemplo, um servidor LDAP é um balaio :-)

Nota Importante

O conteúdo deste blog foi desenvolvido por mim e não foi copiado de outros locais, embora alguns poucos tópicos tenham sínteses e adaptações de outras fontes, que neste caso, serão referenciadas para se dar o devido crédito.
A reprodução é permitida desde que citada a fonte e para fins não comerciais. É proibido o uso para fins comercias sem a expressa autorização do autor.
Embora o conteúdo aqui apresentado seja testado pelo autor e/ou passado por sua aprovação, não é oferecida nenhuma garantia de que tudo funcionará corretamente ou não irá danificar os sistemas envolvidos, pois o sucesso dependerá do ambiente e/ou conhecimento do leitor.
Ao utilizar este blog, para qualquer fim, o leitor concorda com estes termos e isenta o autor de qualquer responsabilidade, ficando o uso do conhecimento aqui apresentado por sua conta e risco.
Caso discorde destes termos, gentileza fechar esta página imediatamente.

Copyright Jonathan Araújo 2010