shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] hist�rias de terror na tela negra


From: Aurelio Marinho Jargas
Subject: Re: [shell-script] histórias de terror na tela negra
Date: Mon, 14 Jul 2003 11:04:42 -0300 (ART)

ae gustavo,

 --- Gustavo Adolfo Kellermann <address@hidden> escreveu:
> Será que tem boa documentação em português sobre como recuperar
> arquivos no linux?

> Lembrei da maior aventura da minha vida na informática, quando
> removi um diretório com milhares de arquivos de movimento, que
> significavam $$$ a ser cobrado dos usuários.

cara, que história de terror :)
não queria estar na tua pele nesse momento...
recuperar os dados já é difícil, com o peso da importância
deles fica mais difícil ainda, e pra fechar com os caras
no cangote perguntando se vai demorar, aí é brabo :)

a minha pior caca infelizmente foi irreversível :(

eu tava no meu $HOME ***como root*** (principiante é fogo...)
e por algum motivo eu queria apagar todos os arquivos dele,
acho que eu tinha copiado meu $HOME pra outro lugar, sei lá.

o fato é que eu fiz um rm -rf * básico e pronto, todos os
arquivos foram apagados. opa, todos não, ainda faltavam os
arquivos ocultos que começam com ponto .

já perceberam o que vai acontecer né? :)

pois é, eu muito do trouxa automaticamente escrevi

    rm -rf .*

para apagar todos os arquivo que começam com ponto, certo?
certo! só que eu não contava com o arquivo '..'

o meu rm mágico subiu um diretório e achou o /home do sistema,
onde estavam os HOMEs de outros funcionários da área técnica
da Conectiva e fez a festa.

como eu tinha poucos arquivos ocultos no meu HOME e vi que o
comando estava demorando, apertei Ctrl+C e o rm faminto parou,
mas o resultado foi o HOME inteiro de um colega apagado e mais
uns arquivos de outro.

meu, não sabia onde enfiar a cara. descobri da pior maneira
que:

1. não se usa root à toa
2. pense 3 vezes antes de dar o ENTER num rm -rf
3. nunca use .* quando o certo é .[^.]*

a Conectiva ainda era bem pequena, qualquer mané (tipo eu) 
tinha senha de root nas máquinas e não tinha becape naquela
máquina em especial. o cara realmente perdeu todos os seus
arquivos e eu fiquei com cara de bunda por um bom tempo.

       senha de root + principiante = PERIGO

outras cacas que fiz foi em scripts...
MUITO CUIDADO com a combinação 

  rm -rf
  +
  $variavel
  +
  / ou *

é comum num script você fazer algo como

   ext='.txt'
   rm *$ext

ou

   dir=fulano
   rm -rf /home/$fulano

parece normal né?
mas agora pense: e se por algum motivo alienígena a variável
chegar vazia na linha do rm?

vai ficar:

   rm *
e
   rm -rf /home/


isso pode acontecer por várias razões, pois se hoje a declaração
da variável está logo acima do rm, amanhã pode estar lá no
começo do script, pode ter virado um função, mudado de nome...

o mais seguro é SEMPRE definir um valor padrão para pegar estes
casos, assim:

   rm *${ext:-VARIAVEL_VAZIA}

   rm -rf /home/${fulano:-VARIAVEL_VAZIA}

assim caso elas estejam vazias, os comandos ficarão

   rm *VARIAVEL_VAZIA

   rm -rf /home/VARIAVEL_VAZIA

e nenhum dano será causado

ops, me empolguei,
falouzz.






=====
-- 
Aurelio Marinho Jargas - Floripa
Vou ministrar Curso de Shell em SP http://aurelio.net
Fotos do IV FISL (Porto Alegre) http://aurelio.net/viagem/fisl-2003/
Desenvolvimento Livre http://aurelio.net/doc/changelog-nerd.html

_______________________________________________________________________
Yahoo! Mail
Mais espaço, mais segurança e gratuito: caixa postal de 6MB, antivírus, 
proteção contra spam.
http://br.mail.yahoo.com/


reply via email to

[Prev in Thread] Current Thread [Next in Thread]