Faça backup e restaure uma caixa de correio do Zimbra CE usando exportações TGZ.

Para fazer backup de uma caixa de correio do Zimbra Community Edition (CE), exporte-a como um arquivo TGZ com o comando `zimbra export` zmmailbox getRestURL, valide o arquivo e restaure-o com o comando ` zimbra restore` postRestURL. Ao importar para uma conta que já contém e-mails, comece com o comando ` zimbra restore` resolve=skip; usar resolve=reseto comando `zimbra restore` na raiz da caixa de correio pode remover itens existentes.

Entenda o que uma exportação por caixa de correio protege.

O Zimbra documenta a exportação e importação de arquivos TGZ por meio de sua interface REST e zmmailboxutilitário. O arquivo destina-se a transportar o conteúdo e a estrutura de pastas da caixa de correio, incluindo mensagens de e-mail empacotadas como arquivos EML e dados aplicáveis ​​de calendário, contatos, tarefas ou Briefcase. O conteúdo e os metadados que permanecem após a importação podem variar dependendo das versões de origem e destino e dos itens transferidos.

Não confunda isso com um backup completo da conta ou do servidor. Uma exportação de conteúdo TGZ não provisiona uma conta ausente nem preserva de forma independente todos os atributos LDAP, senhas, aliases, atribuições de classe de serviço, configurações de roteamento, filtros, permissões ou configuração do servidor. Registre quaisquer configurações de conta necessárias separadamente usando procedimentos administrativos. O zmbackuputilitário descrito na documentação antiga do Zimbra pertence à Network Edition, não ao fluxo de trabalho CE padrão.

Os exemplos de comando seguem as interfaces documentadas do Zimbra, mas não representam um teste em tempo real de todas as versões CE compiladas independentemente. Consulte a documentação zmcontrol -v, a ajuda disponível zmmailboxe as notas de versão da sua compilação antes de planejar uma recuperação em produção. Além disso, não se deve presumir que uma exportação REST em tempo real capture um instante perfeitamente consistente caso o usuário altere itens durante a execução. Agende um período de baixa atividade quando a consistência for importante.

Exportar a caixa de correio individual

1. Identifique a conta e seu host de e-mail

Conecte-se ao servidor Zimbra com uma conta de sistema operacional com privilégios de administrador. Alterne para o usuário do serviço Zimbra e confirme se a conta de destino existe. Em uma implantação com vários servidores, certifique-se de estar se conectando ao serviço de caixa de correio correto.

sudo -iu zimbra
zmcontrol -v
zmprov ga user@example.com zimbraMailHost zimbraAccountStatus
zmmailbox -z -m user@example.com getAllFolders

Substitua user@example.compela conta real. A -zopção usa as credenciais de administrador local do Zimbra; não é a senha do usuário final. Se você não tiver os direitos administrativos necessários, use um fluxo de trabalho de acesso à conta aprovado em vez de incorporar senhas em um comando do shell.

Terminal exibindo uma pesquisa de conta Zimbra com o host da caixa de correio e o status ativo.
Verifique o endereço da caixa de correio, o servidor de hospedagem e o status da conta antes de iniciar a exportação.

2. Crie um local de arquivo privado

Como usuário privilegiado do sistema operacional, crie um local gravável pelo usuário do serviço Zimbra. Faça isso fora de diretórios públicos e verifique o espaço livre primeiro. Execute o comando de instalação antes de alternar para o usuário do serviço Zimbra zimbraou retorne à sua conta privilegiada.

sudo install -d -o zimbra -g zimbra -m 0700 /srv/zimbra-mailbox-backups
df -h /srv/zimbra-mailbox-backups
ls -ld /srv/zimbra-mailbox-backups

Os arquivos de e-mail podem conter mensagens e anexos confidenciais. Limite o acesso ao sistema de arquivos, proteja qualquer cópia fora do servidor e aplique uma política de retenção adequada.

Terminal exibindo um diretório de backup de caixa de correio privada e a lista de permissões Unix.
Utilize um diretório de backup privado e verifique as permissões do sistema de arquivos.

3. Exporte a caixa de correio como TGZ.

A partir de um zimbraterminal, utilize o exportador REST abaixo. A -t 0opção desativa o tempo limite da CLI para operações de grande porte; ela não garante que proxies, operações de E/S de disco ou limites do servidor não possam interromper a exportação.

umask 077
zmmailbox -z -m user@example.com -t 0 getRestURL '//?fmt=tgz' > /srv/zimbra-mailbox-backups/user-20261010.tgz

Execute uma exportação por conta e escolha um nome de arquivo único e com data. Não reutilize um caminho de arquivo anterior, pois o redirecionamento do shell o truncará. Se o comando reportar um erro, considere o arquivo resultante como incompleto até que ele passe nas verificações abaixo.

Terminal mostrando o comando `zmmailbox getRestURL` exportando uma caixa de correio para um arquivo TGZ.
O comando getRestURL grava um arquivo compactado da caixa de correio no diretório escolhido.

4. Valide o arquivo e registre seu checksum.

Um arquivo TGZ não vazio não é prova de um backup recuperável. Teste todo o fluxo tar, inspecione entradas de pastas representativas e calcule um resumo (dig). Uma verificação tar com falha significa que você deve investigar a exportação em vez da importação do arquivo.

test -s /srv/zimbra-mailbox-backups/user-20261010.tgz
tar -tzf /srv/zimbra-mailbox-backups/user-20261010.tgz > /dev/null
tar -tzf /srv/zimbra-mailbox-backups/user-20261010.tgz | head -n 20
cd /srv/zimbra-mailbox-backups
sha256sum user-20261010.tgz > user-20261010.tgz.sha256

Armazene o checksum ao lado do arquivo e mova ambos para um local de armazenamento protegido fora do servidor original. Após a cópia, execute o comando sha256sum -c user-20261010.tgz.sha256no diretório que contém os dois arquivos. Um checksum bem-sucedido confirma a integridade dos bytes, mas não garante que todos os recursos da caixa de correio serão restaurados corretamente.

Terminal mostrando a existência do arquivo, a integridade do gzip e uma lista de pastas da caixa de correio.
Inspecione o arquivo antes de considerar a exportação como uma cópia de recuperação utilizável.
Terminal exibindo um checksum SHA-256 para um arquivo TGZ de caixa de correio.
Registre um resumo SHA-256 para que o arquivo transferido possa ser verificado em busca de alterações.

Restaurar o arquivo sem sobrescrever o e-mail ativo

5. Prepare e inspecione a caixa de correio de destino.

Crie a conta de destino através do seu processo de provisionamento Zimbra normal e aprovado, caso ela ainda não exista; a importação TGZ não a criará. Verifique o endereço, a cota, o acesso aos serviços e as pastas existentes. Para o primeiro teste, utilize uma conta isolada de não produção, especialmente para transferências entre versões diferentes.

sudo -iu zimbra
zmprov ga user@example.com zimbraMailHost zimbraAccountStatus
zmmailbox -z -m user@example.com getAllFolders

Copie o arquivo validado para um diretório legível pelo usuário do serviço Zimbra de destino, mantendo as permissões restritas. Para uma transferência remota, verifique o checksum novamente no destino. Não assuma que uma conta com o mesmo endereço esteja vazia.

Terminal exibindo os atributos da conta do comando de provisionamento do Zimbra.
Confirme se a conta de destino pretendida existe antes de importar os itens da caixa de correio.

6. Importe com uma política de conflitos adequada ao destino.

Para adicionar itens ausentes mantendo os itens correspondentes, use resolve=skip. Este é o comportamento padrão documentado para tratamento de duplicados, mas não garante uma mesclagem perfeita para todos os tipos ou versões de itens.

zmmailbox -z -m user@example.com -t 0 postRestURL '//?fmt=tgz&resolve=skip' /srv/zimbra-mailbox-backups/user-20261010.tgz

Evite copiar um exemplo destrutivo para produção. A documentação do Zimbra resolve=resetrecomenda limpar os itens de destino antes da importação. As replacepolíticas modifytambém alteram a forma como os itens existentes são tratados. Considere-as apenas para uma restauração controlada, após testes e aprovação para o escopo exato da conta e pasta.

Terminal mostrando o postRestURL do zmmailbox com a opção resolve=skip
Importe o arquivo com a política de ignorar conflitos quando o conteúdo existente da caixa de correio precisar ser mantido.

Lidar com falhas de exportação e verificar a recuperação.

Se você encontrar um tempo limite excedido, mantenha -t 0e verifique o tempo limite do servidor ou proxy e os limites de armazenamento; um tempo limite zero na linha de comando não resolve todos os problemas de rede. O wiki de suporte do Zimbra também alerta sobre arquivos corrompidos e falhas de E/S em algumas exportações grandes de caixas de correio. Para uma exportação muito grande ou não confiável, divida o trabalho por pasta ou data e teste cada arquivo e sua importação em uma conta reserva.

Por exemplo, a consulta de pesquisa documentada under:Inboxseleciona o conteúdo da Caixa de Entrada e suas subpastas. As aspas em torno da URL REST são essenciais porque o caractere "&" deve chegar ao Zimbra, e não ao shell.

zmmailbox -z -m user@example.com -t 0 getRestURL '//?fmt=tgz&query=under:Inbox' > /srv/zimbra-mailbox-backups/inbox-20261010.tgz

Um arquivo compactado com escopo de pasta não substitui a exportação completa da caixa de correio. Verifique o conteúdo separadamente e documente quais pastas ou datas foram omitidas. Se a conta estiver desativada ou a solicitação retornar um erro de autorização, verifique o status da conta e a autenticação administrativa em vez de ignorar as verificações de certificado TLS ou expor as credenciais.

7. Verifique os itens restaurados, não apenas o comando de saída.

Liste as pastas de destino e compare-as com as pastas de origem registradas e o inventário TGZ:

zmmailbox -z -m user@example.com getAllFolders
zmmailbox -z -m user@example.com getMailboxSize

Em seguida, faça login na conta de teste de destino e abra uma amostra de mensagens recebidas e enviadas, anexos, contatos e eventos de calendário. Verifique as datas e os caminhos das pastas e revise quaisquer erros de importação. Recrie ou verifique aliases, permissões de compartilhamento, regras e outras configurações de nível de conta separadamente, quando necessário. Considere a recuperação como bem-sucedida somente quando os dados esperados estiverem acessíveis e as verificações forem registradas.

Terminal exibindo os nomes das pastas do Zimbra retornados por getAllFolders.
Compare o conteúdo restaurado das pastas Caixa de Entrada, Enviados, Calendário e outras com o conteúdo esperado do arquivo.

Referências principais: Referência do comando zmmailbox do Zimbra , Referência da API REST do Zimbra , Referência de administração do zmprov do Zimbra e artigo do Zimbra sobre exportações com escopo e precauções com arquivos grandes . Alguns exemplos da wiki do Zimbra são antigos ou estão marcados como trabalho em andamento; verifique o comportamento deles na sua versão CE instalada antes de utilizá-los em produção.

Deixar um comentário

Diagnosticar um servidor SUSE que trava na tela de desligamento do systemd.

Diagnosticar um servidor SUSE que trava na tela de desligamento do systemd.

Utilize tarefas do systemd e o registro de inicialização anterior para localizar um serviço lento, uma montagem ou uma dependência de armazenamento e, em seguida, corrija-a sem mascarar a causa.

Permita apenas o tráfego da Web necessário para o seu servidor SLES 15

Permita apenas o tráfego da Web necessário para o seu servidor SLES 15

Use o firewall-cmd para inspecionar a zona ativa, permitir HTTP com segurança, preservar o acesso SSH e verificar se a regra persiste após uma reinicialização no SLES 15.

Diagnostique falhas de login do SLES PAM sem se bloquear o acesso.

Diagnostique falhas de login do SLES PAM sem se bloquear o acesso.

Rastreie uma falha do PAM até o serviço, a política de conta ou o provedor de identidade responsável e, em seguida, repare a configuração correta do SLES, preservando uma sessão de administrador em funcionamento.

Como configurar uma VPN WireGuard ponto a site no Debian 12

Como configurar uma VPN WireGuard ponto a site no Debian 12

Configure um servidor VPN WireGuard em Debian 12 para um cliente remoto. Configure chaves, encaminhamento IPv4, NAT com nftables, acesso ao firewall e verificações de conexão.

Sincronize usuários do Active Directory com o ONLYOFFICE DocSpace via LDAP

Sincronize usuários do Active Directory com o ONLYOFFICE DocSpace via LDAP

Conecte o ONLYOFFICE DocSpace ao Active Directory ou OpenLDAP, importe usuários e grupos com segurança, mapeie campos de conta e agende uma sincronização confiável.

Automatize backups consistentes do Nextcloud com Restic e Cron.

Automatize backups consistentes do Nextcloud com Restic e Cron.

Faça backup dos arquivos do Nextcloud e do MariaDB simultaneamente, agende snapshots criptografados do Restic com o cron e verifique a recuperação sem colocar o servidor em risco.

Faça backup e restaure uma caixa de correio do Zimbra CE usando exportações TGZ.

Faça backup e restaure uma caixa de correio do Zimbra CE usando exportações TGZ.

Exporte uma caixa de correio individual do Zimbra Community Edition, valide seu backup TGZ e restaure itens ausentes sem sobrescrever as mensagens existentes.

Permitir que usuários aprovados criem salas Jitsi com login do Keycloak

Permitir que usuários aprovados criem salas Jitsi com login do Keycloak

Permitir que apenas contas aprovadas iniciem salas do Jitsi Meet usando autenticação por Keycloak e token, mantendo a opção de entrada de convidados disponível quando necessário.

Adicionar fontes ao servidor de documentos ONLYOFFICE: Docker vs Linux

Adicionar fontes ao servidor de documentos ONLYOFFICE: Docker vs Linux

Instale fontes personalizadas no ONLYOFFICE Document Server, compare montagens persistentes do Docker com cópias diretas, reconstrua a lista de fontes e verifique o resultado.

Coloque documentos do ONLYOFFICE atrás do HAProxy sem interromper a edição.

Coloque documentos do ONLYOFFICE atrás do HAProxy sem interromper a edição.

Configure o HAProxy HTTPS, os cabeçalhos de encaminhamento, os tempos limite do WebSocket e as verificações de integridade para o ONLYOFFICE Docs e, em seguida, verifique a edição e o salvamento.