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:
- 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;
- 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
|