De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
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"
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/
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários