Pular para o conteúdo

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

Dica publicada em Linux / Correio Eletrônico
Fabio Soares Schmidt fs.schmidt
Hits: 4.068 Categoria: Linux Subcategoria: Correio Eletrônico
  • Indicar
  • Impressora
  • Denunciar

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

Dovecot - Mover Spam automaticamente para a pasta desejada

Dovecot: userdb reply doesn't contain uid (change userdb socket permissions)

Postfix: Desabilitando SSLv3 (Poodle Vulnerability)

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

Personalizar mensagem de erro no Squid

Zimbra Desktop no Ubuntu 12.04 LTS

Zimbra: Aplicando patch de segurança para vulnerabilidade de CCS Injection (CVE-2014-0224)

Postfix - Entregando para diferentes rotas no mesmo ambiente

Zimbra - "Erro: PKIX path building failed" ao executar o Zmmailbox

Cyrus IMAPD: Separando os meta-arquivos

#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

Entre na sua conta para comentar.