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

Publicado por Fabio Soares Schmidt em 30/10/2013

[ Hits: 3.753 ]

 


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

Cyrus Aggregator - Serviço Sieve não conecta no Backend [Resolvido]

Cyrus Imap: Fatal error: Internal error: assertion failed: seen_db.c: 127: *seendbptr == NULL

Cyrus IMAPD: Separando os meta-arquivos

Postfix: Adicionando disclaimer - Exceções de remetentes

Cyrus IMAPD - Erro "Unsupported feature(s) in require" ao aplicar filtros Sieve

Leitura recomendada

Enviando email via terminal de comandos

Problemas ao abrir anexos do tipo 'winmail.dat' no Evolution (MS Outlook)

Fixando assinatura no Evolution Mail

Configurar Slackware + MySQL + Courier-Imap + etc

Debian Wheezy - Erro: Return-Path nulo no Sieve scripts [Resolvido]

  

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