AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 427312
Accepted
Rui F Ribeiro
Rui F Ribeiro
Asked: 2018-03-01 13:24:19 +0800 CST2018-03-01 13:24:19 +0800 CST 2018-03-01 13:24:19 +0800 CST

Maildir compactado [eram arquivos Postfix Maildir estranhos]

  • 772

Fui chamado para resolver uma situação de recuperação de backup de e-mails de um servidor legado que travou.

Tendo arquivos Maildir, e com alguns dados de cabeçalho, eu poderia facilmente determinar com algum trabalho de detetive o servidor usado para executar uma combinação de postfix+dovecot, ao contrário do que estava sendo dito de postfix+courier.

Então eu configurei um servidor Debian 9 com Postfix 3.1.6 e dovecot-imapd 2.2.27.

Depois de alguns ajustes, já estávamos vendo as pastas, mas os e-mails pareciam distorcidos.

Inspecionando o cur e os novos diretórios, os arquivos de e-mail pareciam no formato Maildir normal, no entanto, ao abri-los, pareciam distorcidos.

Executei um comando filepara descobrir que as mensagens estão todas em um formato gzipado.

O que está acontecendo aqui, recebi um backup em que o administrador gzipou todos os arquivos de mensagens da caixa de e-mail antes de fazer backup deles?

debian postfix
  • 1 1 respostas
  • 1701 Views

1 respostas

  • Voted
  1. Best Answer
    Rui F Ribeiro
    2018-03-01T13:24:19+08:002018-03-01T13:24:19+08:00

    Conforme eu explorava mais o assunto, senti que algo estava definitivamente fora do lugar.

    Minhas suspeitas também aumentaram ainda mais, pois ao descompactar algumas mensagens, o nome foi atualizado para refletir o novo tamanho maior quando o dovecot as viu.

    Portanto, após uma investigação mais aprofundada, o pombal encontrado pode ter compressão no local.

    De Ativar compactação no armazenamento Dovecot

    Acabei de descobrir que a compactação pode ser aplicada no armazenamento de correio Dovecot.

    Observe que a compactação será aplicada apenas a e-mails “novos”.

    Do Compressed Dovecot Maildir no Debian .

    Adicione isso em /etc/dovecot/conf.d/10*

    # Enable zlib plugin globally for reading/writing:
    mail_plugins = $mail_plugins zlib
    
    # Enable these only if you want compression while saving:
    plugin {
        zlib_save_level = 6 # 1..9; default is 6
        zlib_save = gz # or bz2, xz or lz4
    }
    

    Adicione isso em /etc/dovecot/conf.d/20*

    protocol imap {
       mail_plugins = zlib
    }
    protocol pop3 {
       mail_plugins = zlib
    }
    

    Reinicie o serviço dovecot:

    service dovecot restart
    

    As configurações de compactação serão aplicadas a todas as mensagens criadas após a alteração da configuração.

    Existem instruções no Dovecot WiKi (plug-in Zlib) que o ajudariam a compactar e-mails já armazenados.

    Do Dovecot WiKi (plug-in Zlib)

    O plug-in Zlib pode ser usado para ler arquivos compactados mbox, maildir ou dbox. Também pode ser usado para gravar (via IMAP, LDA e/ou LMTP) mensagens compactadas em caixas de correio dbox ou Maildir. O plugin Zlib suporta compactação usando zlib/gzip, bzlib/bzip2, liblzma/xz (v2.2.9+) e liblz4/lz4 (v2.2.11+).

    ......

    maildir

    Quando este plug-in é carregado, o Dovecot pode ler arquivos compactados e não compactados do Maildir. Se você habilitou o suporte gzip e bzip2, você pode ter arquivos compactados com qualquer um deles no Maildir. A compactação é detectada lendo os primeiros bytes do arquivo e descobrindo se é um cabeçalho gzip ou bzip2 válido. O nome do arquivo não importa.

    Como alternativa, não querendo lidar com caixas de correio compactadas por motivos de desempenho, uma das abordagens para descompactá-las em massa é escrever um script bash.

    O script atual tem algumas deficiências, no entanto, a diretriz geral é:

    #!/bin/bash
    
    TMPDIR="/tmp"
    
    service dovecot stop
    
    find  /home/*/Maildir -type f |
    
    while read file
    do
        file "$file" | grep gzip > /dev/null
        if [ $? -eq 0 ]
        then
            echo "$file"" gzipped...decompacting"
            mv "$file" $TMPDIR/$$.gz
            gunzip -c $TMPDIR/$$.gz > "$file"
            rm -f $TMPDIR/$$.gz 
        fi
    done
    
    find /home -name "dovecot.index.cache*" -delete
    
    service dovecot start
    
    • 4

relate perguntas

  • Configuração do GRUB para reconhecer diferentes ambientes de desktop (instalações) da mesma distribuição Linux

  • astyle não altera a formatação do arquivo de origem

  • Recebendo e-mail em um novo Debian fresco

  • Debian Stretch: gnome-software segfault em libgs_plugin_systemd-updates.so

  • Como digitar ü no Pinyin IME?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve