HD da mãe Joana
Sunday, November 19th, 2006Computadores apesar de parecerem os detentores da organização são incrivelmente propensos a se desordenarem. Na verdade, a culpa é nossa. Somos nós que colocamos cabos ao leo e arquivos a propria sorte. Se já era difícil manter meu HD em ordem quando minha conexão era de apenas 1mb, agora com 4Mb/s essa missão tem sido impossível. Tudo que vou recebendo via IRC, IM, e-mail, ftp ou baixo manualmente vai se amontoando em algumas pastas até se tornar um volume incompreensível de arquivos onde se acha nada.
A solução que encontrei foi de autosabotagem, inspirada numa dieta estranha que ouvi dizer em que você deve grudar na porta da geladeira todas as fotos de quando era magro para se lembrar que um dia você já foi daquele jeito. No meu computador, a solução foi: remover os arquivos baixados caso eu não os organize.
A lógica é bem simples: dentro da minha home tenho uma pasta chamada downloads, e nela vem pastas de cada programa que utilizo para baixar arquivos (Firefox, Gaim, Xchat etc). E lá vão se acumulando tudo o que baixo no computador. Configurei no crontab, um agendador de tarefas, para que semanalmente exclua TODO o conteúdo destas pastas. Como a remoção pode acontecer a qualquer momento, desde daqui a 15min até daqui a 7 dias, sou obrigado a assim que baixar algo, descompactar ou dar o devido tratamento e salvar em uma pasta específica (como musicas, imagens, designs ou documentos), devidamente classificado ou simplesmente deixar apagar-se sozinho como um PDF que baixei só para dar uma olhada.
Para isso, digitei o comando:
crontab -e
Que irá editar a minha crontab. Irá aparecer um editor de texto e a seguinte linha:
# m h dom mon dow command
Ela serve como referência e não deve ser alterada. É bem simples de entender. Esse arquivo é constituído de 6 colunas, separadas por espaço. Onde:
m - minutos (de 00 a 59)
h - horas (de 0 a 23)
dom - dia do mês (1 a 31)
dow - dia da semana (do inglês, sun mon tue wed fri sat)
command - comando a ser executado
Então caso eu queira rodar um comando a cada 15 minutos, as segundas-feiras eu teria que incluir a seguinte linha linha:
15 * * * mon comando
Mas como rodar algum comando semanalmente ? Existem alguns atalhos compreendidos pelo crontab:
@reboot - executar cada vez que o computador foi reiniciado.
@hourly - executar a cada hora
@daily - executar diariamente
@weekly - executar semanalmente
@monthly - executar mensalmente
@yearly - executar anualmente
Eles são bastante úteis pois, caso uma tarefa esteja agendada para um horário que o computador esteja desligado, quando ele for ligado depois desse horário, a tarefa não será cumprida. Ele não registra ‘tarefas pendentes’. De acordo com Rudnicki, esses atalhos precedidos de arroba podem atuar sim como pendentes e serem executados assim que o computador for ligado.
Então, meu crontab ficaria assim:
# m h dom mon dow command
@weekly rm -rf /home/ktk/downloads/firefox/*
Há de fato algum risco na configuração que defini. Risco de imediatamente após o término da transferência ou durante de um arquivo, dele ser apagado pela infeliz coincidência do crontab entrar em ação. Por conta disso, nosso amigo Carlos Romel propôs nos comentários desse post uma solução. Um script bash que apaga somente os arquivos com mais de 7 dias de idade. Então, faz sentido adicionarmos este script com o valor @reboot. Primeiro, vamos ao código fonte do script:
#!/bin/bash
#
# Elimina os arquivos com mais de sete dias;
#
for d in /home/ktk/downloads/firefox; dofind $d -type f -mtime +7 -exec rm –force “{}” \;
#
# Removemos os diretóios vazios
#
find $d/* -type d -print0 | \
sort –zero-terminated –reverse | \
xargs –no-run-if-empty –null –max-args 1 rmdir 2> /dev/null
done
Vamos salvar este script em /home/meulogin/scripts/limpardownloads.sh. Para que esse arquivo seja interpretado como um executável, devemos digitar:
chmod +x /home/ktk/scripts/limpardownloads.sh
E adicionar no crontab:
# m h dom mon dow command
@reboot /home/ktk/scripts/limpardownloads.sh
E está tudo feito. A partir de agora, basta se policiar para organizar bem os arquivos
Como dizem os filmes de espionagem… ‘Esta pasta se autodestruirá em 5. 4, 3, 2 1…’.
Obrigado pelos comentários. Ajudaram a estabelecer uma solução melhor.





