Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Verificando bases do bogofilter

Colaboração: Rodrigo Bernardo Pimentel

Data de Publicação: 17 de Fevereiro de 2004

Já foram enviadas algumas dicas sobre o bogofilter, então não vou entrar em detalhes sobre sua configuração. Mas é útil saber que o bogofilter armazena suas informações (ou seja, as palavras e probabilidades com que ele decide o que é e o que não é spam) em um sistema de banco de dados chamado "Berkeley DB". Esse banco de dados, no caso do bogofilter, é um arquivo que, por padrão, fica em ~/.bogofilter/wordlist.db.

Com o uso, é possível que esse arquivo acabe corrompido (por quedas de luz, interrupções do bogofilter ou disco lotado quando ele está escrevendo no arquivo etc), e isso pode gerar classificações erradas e resultados muito pobres.

Para estar atento a esse problema, segui a sugestão de Dave Relson (um desenvolvedor do bogofilter) e escrevi o seguinte script em ~/.bogofilter/backup.sh:

  #!/bin/bash
  
  BOGO_HOME=~/.bogofilter
  TODAY=$(date +%w)
  WORDLIST=$BOGO_HOME/wordlist.db
  DIR=$BOGO_HOME/$TODAY
  DB_VERIFY=db4.1_verify
  
  if $DB_VERIFY $WORDLIST; then
      # Mantem soh ontem e hoje
      rm -f $BOGO_HOME/$(date -d '2 days ago' +%w)/wordlist.db
      cp -f $WORDLIST $DIR
  fi

Então, crio 7 diretórios, um para cada dia da semana:

  cd ~/.bogofilter && mkdir $(seq 0 6)

O script acima, quando rodado, usa o programa db_verify, distribuído junto com o Berkeley DB (na Debian, o nome varia dependendo da versão; eu estou usando o pacote db4.1-util: "apt-get install db4.1-util" e o nome do programa é db4.1_verify). Esse programa checa a integridade do arquivo de dados e o copia para o diretório referente ao dia atual. Em seguida, apaga (se houver) o arquivo correspondente a 2 dias atrás. Ou seja, tenho backup da base atual (na hora em que o script é rodado) e do dia anterior.

Para automatizar o processo, basta colocar no crontab:

  crontab -e

E, no arquivo editado, colocar:

  MAILTO=seu_email
  0 6 * * * /home/rbp/.bogofilter/backup.sh

Isso executa o script todo dia às 6 da manhã. É claro, você precisa trocar "/home/rbp/.bogofilter/backup.sh" pelo caminho até o script (e lembre-se, ele precisa ser executável) e "seu_email" pelo seu endereço de e-mail (isto porque se o db_verify falha ele imprime erros na tela e o crontab envia toda a saída do comando por e-mail).

Finalmente, se você receber um e-mail do crontab mostrando algum erro no db_verify, não se apavore: ele pode acusar erros se estiver verificando o arquivo enquanto este estiver sendo escrito (ou seja, se o bogofilter estiver rodando naquele momento). Portanto, se receber erro, rode novamente "db_verify ~/.bogofilter/wordlist.db" (em alguma hora em que não esteja recebendo e-mails, ou, se for o caso, copie o arquivo para outro nome em que ele não vá ser modificado durante a verificação). Se seu fluxo de e-mail for muito grande 24h por dia, pode alterar o script para copiar e verificar a cópia. Se continuar recebendo erro, basta copiar o arquivo backupeado mais recente sobre o arquivo corrompido, você perderá no máximo um dia de "treinamento" do bogofilter.

   Rodrigo Bernardo Pimentel                         <rbp@isnomore.net>
   http://isnomore.net                          GPG KeyId: <0x0DB14978>
  
  So cold... Can't move... Can't feel... Can't make complete sentences...
            -- Humphrey, "Cannibal the Musical"

Cryptoloop HOWTO v1.0

Colaboração: Caio Souza Mendes <<caio_sm (a) yahoo com br>>

HOWTO escrito por Ralf Holzer, explicando como criar sistemas de arquivos criptografados com a funcionalidade Cryptoloop, parte do CryptoAPI da série 2.6 do Kernel Linux...

http://tldp.org/HOWTO/Cryptoloop-HOWTO/

Veja a relação completa dos artigos de Rodrigo Bernardo Pimentel

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 2.98/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (1231 votos)

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script

Treinamentos, Consultorias e Soluçoes em TI. Baseados em softwares livres e padrões abertos para ambientes de missão crítica

Submarino.com.br

Objective-C Fundamental