Piter Punk's HomePage - Artigos
 
English version
Uma Lixeira no Linux

Piter PUNK

Quantas vezes isso não aconteceu? Você tranqüilo no seu canto e chega um usuário desesperado: "Eu apaguei o arquivo XYZ! O quê eu faço agora?" Normalmente a nossa resposta é: "Senta e chora."

1. Introdução

Depois do sujeito chorar bastante, podemos ensinar a ele a grande máxima: faça backups! (e, se possível, tenha backups deles). Muitas vezes o usuário não é suficientemente compreensivo quando ocorrem essas coisas, e fica lembrando de recursos escusos de outros sistemas operacionais...

Essa novela pode ser extremamente minimizada com o uso da libtrash. Com ela, os arquivos apagados pelo nosso desatento usuário serão todos copiados para um diretório especial. Se ele quiser *MESMO* apagar o arquivo, terá que apagá-lo dentro deste diretório especial.

A instalação e configuração da libtrash são bem simples portanto, mãos à obra!

2. Obtendo

Faça o download da libtrash no seguinte endereço:

	http://m-arriaga.net/software/libtrash/libtrash-latest.tgz

Não se iluda, apesar do ".tgz" do fim, não se trata de um pacote para o Slackware, teremos que compilar esta biblioteca a partir destes fontes. Utilize o "tar" para extrair os arquivos:

	# tar -xvzf libtrash-latest.tgz

No momento em que escrevo este artigo, a versão mais nova é a 2.1. Entre no diretório libtrash-2.1. Você agora poderia compilar e instalar o programa, já que segue o estilo "tradicional"

	# make
	# make install

Ou, se você quiser gerar o seu próprio pacote, substitua o "make install" pelo checkinstall (no /extra do Slackware). Mas, não seja tão afobado...

3. Antes de Configurar

A libtrash possui um esquema de configuração extremamente sui generis, as configurações gerais dela só podem ser feitas em tempo de compilação. Ou seja, você deve editar o libtrash.conf *ANTES* de compilar a biblioteca.

A idéia de quem fez a configuração é a de quê o arquivo /etc/libtrash.conf deve servir apenas para informar aos seus usuários quais as configurações que estão compiladas na libtrash. Não adianta fazer alterações neste arquivo, já que ele não é lido pela libtrash. Se você quiser utilizar a biblioteca com configurações "personalizadas", deve editar o arquivo ~/.libtrash (pode tomar como base para esse arquivo o /etc/libtrash.conf)

Portanto, se você quiser que a configuração da libtrash esteja disponível para todos os seus usuários, tem duas opções:

  1. Colocar uma mesma .libtrash para todos os seus usuários (colocando no /etc/skel para os usuários novos e copiando para o $HOME de todos os seus usuários antigos) ou;
  2. Editar o arquivo libtrash.conf ANTES de compilar. Assim, você terá uma configuração global padronizada para todos os seus usuários e, se eles quiserem alterá-la, podem fazer seus próprios .libtrash

Particularmente, eu prefiro a opção 2, mas você pode usar a opção 1. Caso prefira a opção 1, rode normalmente o make e o make install. Em seguida, edite o seu arquivo .libtrash como será mostrado abaixo.

4. Configurando

Existem várias configurações no arquivo libtrash.conf (ou .libtrash), o arquivo é extremamente bem documentado e qualquer um com um pouco de conhecimento da língua inglesa pode selecionar as opções adequadas. Mas, para os que querem ver logo a libtrash funcionando (que suponho serem a maioria dos leitores), aqui vão as opções principais:

    TRASH_CAN = Lalala

      Onde, Lalala é o nome que você quer dar para o diretório que irá conter os seus arquivos deletados. Se você não alterar, o nome deste diretório será Trash

    WARNING_STRING = Lalala lalala lalala

      Aqui você substitui os Lalala pelo aviso a ser dado aos seus usuários quando eles desabilitarem a libtrash. Esta opção apenas pode ser configurada em tempo de compilação, não sendo alterada via .libtrash

    SHOULD_WARN = YES|NO

      Com esta variável você configura se o aviso da opção anterior será ou não mostrado quando a libtrash estiver desativada

    PROTECT_TRASH = YES|NO

      Situação difícil. Se você configurar para "NO" será possível limpar normalmente a TRASH_CAN, apenas apagando os arquivos, mas com isso será possível dar um rm -rf * e acabar perdendo vários dos seus arquivos.

      Se escolher YES, será necessário desativar a libtrash todas as vezes que for esvaziar a sua TRASH_CAN. Eu prefiro a comodidade do YES.

    IGNORE_HIDDEN, IGNORE_EDITOR_BACKUP e IGNORE_EDITOR_TEMPORARY

      Estes todos podem variar como YES|NO. Com excessão do primeiro, deixo todos como YES.

      O primeiro avisa a libtrash para não guardar cópias dos arquivos iniciados com "." como a maior parte dos arquivos de configuração. Se você não tem amor pelas suas configurações, pode deixar esta opção como YES.

      Os dois últimos são, respectivamente, relativos aos arquivos terminados em "~", e os arquivos iniciados com "#". Ambos são arquivos bons de apagar. Costumo deixá-los como YES. Se você achar melhor deixar como NO, prepare-se para a multidão de arquivos ~ e # que irão se acumular...

    GLOBAL_PROTECTION = YES|NO

      Se você deixar como NO, apenas os arquivos que estiverem no mesmo sistema de arquivos que o seu poderão ser recuperados. É normal deixar como NO se você pretende apenas conservar o $HOME de seus usuários.

      Caso esteja selecionado como YES, os arquivos de outros sistemas de arquivos serão copiados para a sua TRASH_CAN. Só uma dica: isso costuma deixar a máquina mais lenta.

Como já dito anteriormente, existem várias outras opções, resolvi destacar apenas as que considero mais importantes. Após editar o libtrash.conf, pode compilar e instalar a libtrash sem maiores preocupações

5. Trabalhando com a libtrash

Existem duas maneiras de se ativar o libtrash. Uma delas é usando o arquivo /etc/ld.so.preload porém esta idéia tem vários problemas... o maior deles é que a libtrash não pode ser desativada e você pode causar sérios danos ao seu sistema de arquivos.

Muito mais inteligente, é utilizar a variável de ambiente LD_PRELOAD para carregar a biblioteca, para isso basta:

	# export LD_PRELOAD=/usr/local/lib/libtrash.so

Com isso você irá carregar a libtrash e ela já estará em funcionamento. Se quiser fazer isso sempre que logar no sistema, pode colocar este comando no seu .bash_profile. E, se preferir colocar para todos os usuários do sistema, pode inserir o comando no /etc/profile ou em algum /etc/profile.d/libtrash.sh (neste segundo caso você teria que criar o arquivo libtrash.sh e torná-lo executável)

Se você precisar desativar a libtrash por alguns instantes, ou para apagar a sua TRASH_CAN, pode fazer:

	# export TRASH_OFF=YES

E, para voltar a ativar a libtrash:

	# export TRASH_OFF=NO

Se quiser "descarregar" a libtrash, pode fazer:

	# unset LD_PRELOAD

Com tudo isto, agora você e seus usuários têm acesso a um método interessante para recuperar seus arquivos apagados.

6. Conclusão

A libtrash é um recurso bastante interessante, principalmente para quem possui usuários não muito ligados à idéia de se fazer backups. Com ela é possível recuperar arquivos apagados, resgatando-os de um diretório separado especialmente para isso.

É importante lembrar que, mesmo utilizando a libtrash ou qualquer outro sistema que mantem uma cópia dos arquivos deletados, manter BACKUPS é imprescindível. A libtrash não pode fazer nada se o seu HD queimar ou coisas piores acontecerem.

Quaisquer dúvidas, sugestões ou críticas a respeito deste artigo podem ser enviadas para: piterpk@terra.com.br


Links Principal Artigos Piter Punk Dicas Programas
 
Powered by Slackware Linux - Written in VIm (the best one!) Last Update: 30 Oct 2004