[Dica do Dia]Automontar disco usb em servidores debian com udev

Aqui em casa tenho um netbook que fica ligado 24h ele é o gateway da rede (coloquei um adaptador USB2LAN nele para segunda ethernet) e pluguei um disco usb para manter também downloads de torrents. Acontece que não tenho no-break e a energia é meio instável aqui, daí surgiu esta idéia. Por que não automontar o dispositivo cada vez que a energia falhasse? Meus torrents ficariam parados até que eu reiniciasse os downloads, mas eu não precisaria acessar o console e montar o dispositivo de novo.
Outra situação em que isso pode ser útil é para discos de backup, se por algum motivo o servidor for reiniciado ou o disco desconectado ele estaria automaticamente montado quando normalizasse o cenário e os scripts de backup podem continuar funcionando normalmente.

Ah! Você também pode reaproveitar a ideia e configurar um script para copiar automaticamente as fotos de sua máquina digital para o computador quando ela fosse conectada ;)

Chaga de blá-blá-blá e vamos ao que interessa, como configurar um servidor Linux para automontar um hd usb externo :D

Primeiro temos que identificar o nosso dispositivo. Com ele ligado a uma porta usb vamos utilizar o comando udevinfo da seguinte maneira:
udevinfo -a -p /sys/block/sdc/ | grep model (em /sys/block/sdc você deverá substituir o sdc pelo identificador do seu disco usb neste momento)
A resposta será uma linha com o modelo do seu dispositivo USB, no meu caso foi:
ATTRS{model}=="7AS "

Agora vamos configurar o udev para criar um link específico para este dispositivo quando ele for conectado ao PC.
Em /etc/udev/rules.d crie um arquivo chamado z10-meuhd.rules, e coloque nele o seguinte conteúdo:
KERNEL=="sd*", ATTRS{vendor}=="ST316082", ATTRS{model}=="7AS ", SYMLINK+="ehd%n", RUN+="/bin/montadados"

Para entendermos melhor:
KERNEL=="sd*", => Identificador do dispositivo pelo kernel
ATTRS{model}=="7AS ", => Modelo do dispositivo
SYMLINK+="ehd%n", => Identificador para o link que será criado
RUN+="/bin/montadados" => script que irá montar este dispositivo automaticamente

Agora reinicie seu udev (/etc/init.d/udev restart) e vamos ao script, criando um arquivo chamado /bin/montadados com o seguinte conteúdo:
#!/bin/bash
mount | grep /dados
if [ $? -eq 0 ]; then
umount -l /dados
fi
mount /dev/ehd1 /dados

Este script foi escrito apenas para teste e não foi melhorado, fique a vontade para faze-lo, mas a ideia é verificar se o diretório está montando (/dados é onde eu monto o HD externo) e caso ele esteja montado (lembre-se que ele pode ter sido desligado ou removido de forma forçada) realiza um umount com a opção -l (para desmontagem "relaxada", não é feita nenhuma checagem no dispositivo antes de desmontar) e depois realizada a montagem novamente.

Prontinho!
Com esta gambiarra , digo, este recurso técnico avançado meu disco estará sempre montado, mesmo que a energia falhe, falhe e falhe hahahahaha
Só um lembre-te, nunca deixe de analisar o log e efetuar fscks periódicos uma vez que o disco está mais suscetível a falhas devido a forma errada de funcionamento. Este é apenas um recurso temporário permanente até eu comprar um no-break (estou prometendo há quase 1 ano que irei comprar um)

Abraços a todos!

[Dia a Dia] Bloqueio de Web Messenger

Todos os administradores de rede tem problemas com certos bloqueios e não é para menos.
Segue abaixo uma lista de web messenger que pode ajuda a quem deseja bloquear a maioria destes caras, mas olhando pelas poucas buscas que fiz para chegar a este resultado devem existir milhares de outros!

webmessenger.msn.com
messengerfx.com
iloveim.com
ebuddy.com
palringo.com
msn2go.com
meebo.com.br
koolim.com
mingle.clix.pt
communicationtube.net
imunitive.com
radiusim.com
lagunainfoco.com.br/msnonline
imhaha.com
mabber.com
wablet.com
jwchat.org
messenger.sapo.pt
easymessenger.net
imo.im
instan-t.com
msnnaweb.com
imaginarlo.com
ictweb.com.br
webmessenger.yahoo.com
mijnmessenger.nl
webim.live.sg
atlanta.e-messenger.net
balancer.iloveim.com
balancer.iloveim.com
bombay.e-messenger.net
boston.e-messenger.net
capetown.e-messenger.net
chicago.e-messenger.net
filter.msn.com
houston.e-messenger.net
mbm3550nl1n3.siteburg.com
mob.e-messenger.net
msn.audiowatcher.com
msn2go.com.br
onlinemessenger.nl
phonefox.com
server2.msnger.com
webmessenger.msn.com
bhi.com.brteste
ebuddy.com
e-messenger.net
iloveim.com
imaginarlo.com
meebo.com
meebo.com.br
messbrasil.com.br
messenger-online.com
msn2go.com
msnanywhere.com
onlinemessenger.nl
researchhaven.com
web2messenger.com

Quem quiser compartilhar outros sinta-se a vontade para fazer :D

abraços a todos

[Dia a Dia] Dos Vídeos da Net

Parabéns para o autor por sua critividade, quem quiser conhecer mais Patrick JEAN Portfolio

[Reclamação] Banco do Brasil.... Ai outra vez... De Novo!!![1]

{Agreessive mode on}
Essa bosta deste banco, só não digo que tinha que falir por que se o BB quebrar o brasil quebra junto.

Tem aproximadamente dois meses que não consigo realizar o pagamento de nenhuma fatura com código de barras pela bosta do Internet Banking do Banco do Brasil. Novidade seria se o sistema funcionasse.
Desde que eles mudaram o sistema da internet e não usam mais o teclado virtual este problema aconteceu, minha gerente sugeriu remover o computador da autorização e inserir de novo, mas obviamente não funcionou.

Hoje após gastar mais 5 minuto de ligação local para realizar um pagamento pelo fonebanking resolvi ligar para o suporte técnico.
A resposta do infeliz que me atendeu é que o computador foi bloqueado no sistema por que não atende requisitos de segurança (sejam lá quais são estes requisitos) e que não tem nenhum procedimento para corrigir o problema, que o bloqueio é realizado pela tecnologia de segurança do banco do brasil, ou seja a BOSTA da tecnologia "burrocrata" do banco do brasil que nunca fez diferença nenhuma (eu conheço inúmeros casos de pessoas que se foderam no BB com empréstimos feitos e etc) impede que eu utilize o meu notebook para realizar os pagamentos.

Como assim não tem um meio de reverter isso? Quais são os requisitos e por que meu computador foi bloqueado? Isso ninguém sabe responder, ou seja, pela resposta do atendente do suporte do banco eu NUNCA MAIS poderei utilizar meu notebook para realizar pagamentos no banco do brasil.... Surpresa!!!

Só para acrescentar mais informações, quando eu clico em requisitos mínimos na tela de acesso ao banco, abre uma página incompleta, apenas com o cabeçalho do banco

Me resta agora ligar para ouvidoria, abrir uma reclamação e esperar para que nada seja feito.
{Agressive mode off}

[1] Baby Sauro, Família Dinossauro: http://pt.wikipedia.org/wiki/Dinosaurs

[Artigos] Recuperando Journaling ext3 por superblocks backup

Outro dia recebi uma ligação de um cliente com problemas em um servidor. Ele já havia tentado o que sabia mas o GRUB não parava de exibir um "error 24". Fizemos um boot com um CD do Debian, alterando a prioridade do debconf e ativando o network-console, deste modo consegui remotamente acessar o servidor.

De cara tentei o de praxe, fsck, mas o resultado foi preocupante. Eu obtive a seguinte mensagem:
# fsck /dev/hdc1
fsck 1.39 (29-May-2006)
e2fsck 1.39 (29-May-2006)
fsck.ext3: Filesystem revision too high while trying to open /dev/hdc1
The filesystem revision is apparently too high for this version of e2fsck.
(Or the filesystem superblock is corrupt)

The superblock could not be read or does not describe a correct ext2
filesystem. If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193

Primeiro pensei que a versão do FSCK pudesse ser muito antiga e por isso não estivesse conseguindo ler a partição, então adicionamos o disco defeituoso em uma máquina com Debian Lenny instalado, mas a mensagem persistiu. Então tentei fazer o que se pedia no erro acima:
# e2fsck -b 8193 /dev/hdc1
e2fsck 1.39 (29-May-2006)
fsck.ext3: Bad magic number in super-block while trying to open /dev/hdc1

The superblock could not be read or does not describe a correct ext2
filesystem. If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193

Já estava pronto para condenar o disco, mas a persistência, que não me falta, me fez pedir mais um tempo.
Então encontrei uma thread[1] de uma lista de discussão que relatava o mesmo problema, e a solução do cara foi muito inteligente.
Eu nunca copiei os dados resultantes do mke2fs que reportam os superblocks de backup, e lógico não teria como utilizar estes dados para recuperação. Mas o usuário da lista que estava com o problema teve a brilhante idéia de realizar um mke2fs com a opção -n (apenas simula a formatação) e utilizar os dados resultantes para tentar recuperar o superblock de backup.
O Resultado foi exatamente o que eu precisava para recuperar o filesystem:
# mke2fs -n -j /dev/hdc1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
4889248 inodes, 9767512 blocks
488375 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
299 block groups
32768 blocks per group, 32768 fragments per group
16352 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632,
2654208,
4096000, 7962624

Peguei o primeiro superblock e executei
e2fsck -b 32768 /dev/hdc1

Depois disso realizei um fsck na partição, houve muita perda de dados, mas consegui deixar o filesystem estável a ponto de conseguir recuperar dados. Para variar não haviam backups do servidor, mas no lost+found consegui recuperar o banco de dados de autenticação do squid, o script do firewall e os arquivos de configuração do squid, ou seja, tudo o que precisava para refazer o servidor.

Os arquivos foram reutilizados e duas horas depois a máquina estava no ar, pronta para operar.

Resolvi fazer este post pois acredito que poderá ajudar a outras pessoas em situações semelhantes algum dia.
Abraços a todos!

[1]http://linux.derkeiler.com/Mailing-Lists/Fedora/2007-04/msg02365.html

Conteúdo sindicalizado