Cyrus Aggregator - Resolvendo inconsistências entre servidores Back-end e Mupdate Master (Murder)

Publicado por Fabio Soares Schmidt em 30/10/2013

[ Hits: 3.687 ]

 


Cyrus Aggregator - Resolvendo inconsistências entre servidores Back-end e Mupdate Master (Murder)



É possível que a relação de caixas postais do servidor Mupdate (Murder) perca a consistência com os servidores Back-end do ambiente, como, por exemplo, uma caixa postal não estar mais listada no Back-end e o Mupdate ainda a mantenha em sua lista.

Isso pode ocorrer por falhas de comunicação (rede) entre os servidores ou erros de I/O no Mupdate. Como o servidor Mupdate é autoritativo no ambiente do Cyrus Aggregator, isto é, sua relação é considerada mandatória, não é possível forçar novamente a criação de uma caixa no Back-end que, erroneamente, esteja sendo listada no Mupdate.

No caso de ocorrer muitas inconsistências, o procedimento recomendado é:

1. Parar o serviço do Cyrus no servidor Mupdate.
2. Parar o serviço do Cyrus no Backend.
3. Remover a relação de caixas posais (mailboxes.db) no servidor Mupdate.
4. Executar o comando:

# ctl_mboxlist -m -a -w

No servidor Back-end como usuário cyrus e com o serviço parado, o -w irá simular a operação, caso esteja de acordo, basta executar novamente sem esta opção.

Porém, não é viável parar o serviço caso ocorram pequenas inconsistências, para isso, o utilitário cyr_dbtool do Cyrus, pode ser utilizado, ele consegue manipular o arquivo mailboxes.db, que geralmente, fica no formato skiplist, sem a necessidade parar o serviço.

Vejamos sua utilização:

# /usr/lib/cyrus/bin/cyr_dbtool /caminho/mailboxes.db skiplist show

Informamos o caminho do arquivo (não é permitido utilizar caminhos relativos), seu formato, e por último, a operação a ser executada. Neste caso, irá listar todos os registros presentes no arquivo.

Exemplo com o resultado do comando executado em um servidor Mupdate:
   
 user.fabio          1 nome_do_backend!default fabio    lrswipkxtecda
 user.fabio.Drafts   1 nome_do_backend!default fabio    lrswipkxtecda
 user.fabio.Sent     1 nome_do_backend!default fabio    lrswipkxtecda
 user.fabio.Trash    1 nome_do_backend!default fabio    lrswipkxtecda
  
  
Para remover um registro, utilizamos a operação delete:

# /usr/lib/cyrus/bin/cyr_dbtool /caminho/mailboxes.db skiplist delete user.fabio
# /usr/lib/cyrus/bin/cyr_dbtool /caminho/mailboxes.db skiplist delete user.fabio.Drafts
# /usr/lib/cyrus/bin/cyr_dbtool /caminho/mailboxes.db skiplist delete user.fabio.Sent
# /usr/lib/cyrus/bin/cyr_dbtool /caminho/mailboxes.db skiplist delete user.fabio.Trash


Desta forma, os registros serão removidos imediatamente da base, sendo possível criar as caixas novamente no servidor Back-end. O comando não permite o uso de caracteres coringas.


Obrigado.

Fabio S. Schmidt
Respirando Linux « por Fabio Soares Schmidt

Outras dicas deste autor

Expresso Livre: Corrigindo erros de atualização para versão 2.5

Cyrus IMAP: "Message contains bare newlines" (Erro ao importar mensagens)

Forçando cache do Windows Update com Squid (Atualizado)

Zimbra: Aumentando entregas simultâneas de mensagens

SpamAssassin - Melhorando a eficácia do seu anti-spam

Leitura recomendada

[RESOLVIDO] Squirrelmail não encaminha mensagens

Corretor ortográfico em português no Thunderbird

Resolvendo erro de "Erro! Conexão recusada" ao baixar emails do Yahoo pelo Evolution

Filtro antispam

Verifique as configurações do Sendmail

  

Comentários
[1] Comentário enviado por fafa090 em 09/08/2014 - 21:01h

meu seve black end nao que funciona oq eu faso mesmo ?



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts