0% acharam este documento útil (0 voto)
26 visualizações8 páginas

Guia Completo do imapsync para Zimbra

Este documento fornece instruções para migrar caixas de correio entre servidores IMAP usando a ferramenta imapsync, incluindo como lidar com e-mails grandes, conexões criptografadas e contornar limites de tempo.

Enviado por

Judson Borges
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
26 visualizações8 páginas

Guia Completo do imapsync para Zimbra

Este documento fornece instruções para migrar caixas de correio entre servidores IMAP usando a ferramenta imapsync, incluindo como lidar com e-mails grandes, conexões criptografadas e contornar limites de tempo.

Enviado por

Judson Borges
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Guia do imapsync

1. Zimbra Tech Center


2. Comunidade Sandbox
3. Guia do imapsync

Conteúdo
■ 1 Guia de imapsync
■ 1.1 O Guia
■ 1.1.1 imapsync com conexões TLS (STARTTLS)
■ 1.1.2 Habilitando e-mails com anexos de arquivos grandes (Zimbra IMAP
Tamanho máximo é de 10 MB)
■ 1.1.3 imapsync sobre SSL
■ 1.1.4 Exemplo
■ 1.1.5 Migrando caixas de correio grandes e evitar tempos de espera
■ 1.1.6 Migrando sem saber as senhas
■ 1.2 Processamento em lote

Guia do IMAPSync
- Esta é ​a documentação de arquivo​ , o que significa que não é suportado ou válido para as
versões recentes do Zimbra Collaboration.
- Este artigo é um ​trabalho em andamento​ , e pode ser seções inacabadas ou ausentes.

O guia
Antes de poder usar o imapsync, você deve ter o armazenamento de mensagens IMAP de
origem e o ZCS funcionando e acessível às contas de usuário via IMAP. Você pode verificar
isso usando um cliente de e-mail antes de iniciar a migração. Você precisará dos nomes de
login (ie endereços de e-mail) e senhas para os usuários a serem migrados. Além disso, o
imapsync não poderá autenticar no servidor Zimbra até que você habilite o login de texto
simples para o serviço IMAP. Você pode definir essa opção na guia IMAP das Configurações
globais ou configurações individuais do servidor na interface do usuário do Zimbra Admin
Console. Há também algumas dependências do módulo Perl, incluindo; D ​ igest::MD5,
IO::Socket::SSL,Term::ReadKey, Digest:HMAC, libmail:imapclient ​(​Mail::IMAPClient​ exige
exatamente a versão 2.2.9, como esta escrito) e Date::Manip. Você pode instalá-los com o seu
gerenciador de pacotes favorito, do RPM ou do cpan. Finalmente, considere que imapsync será
uma carga pesada em sua CPU e memória; O sistema executando a migração será menos
responsivo.

O Imapsync pode ser executado mais rapidamente e consumir menos CPU com buffers de I/O
maiores, mas nenhum benchmarking disso foi executado. O tamanho do buffer padrão é 4KB;
Aumentá-lo em uma ou duas ordens de grandeza não é incomum para configurações típicas do
Zimbra pronto. Para aumentar o buffersize para 8MB, adicione os argumentos "--buffersize
8192000" ao executar imapsync.

Para este exemplo meu servidor IMAP existente está sendo executado em [Link] e eu
configurei o Zimbra em uma nova máquina chamada [Link].

imapsync --nosyncacls --subscribe --syncinternaldates \


--host1 [Link] --user1 YourAccount --password1 yourpassword \
--host2 [Link] --user2 yourZimbraAccount --password2 yourZimbraPassword

Claro que o comando completo pertence a uma linha (significada pelas barras invertidas: \).

Um método um pouco mais seguro é escrever cada senha em um arquivo separado e usar as
opções --passfile {1 | 2} intead das opções --password {1 | 2}:

imapsync --nosyncacls --subscribe --syncinternaldates \


--host1 [Link] --user1 YourAccount --passfile1 yourPasswordFile \
--host2 [Link] --user2 yourZimbraAccount --passfile2 yourZimbraPasswordFile

Se o seu antigo servidor IMAP não suportar NAMESPACE, você também precisará adicionar
opções apropriadas, por exemplo, no iMail 6.0, as seguintes são necessárias:

--sep1. --prefix1 INBOX

Sua conta de destino no servidor Zimbra também deve ter Clear Text Login habilitado. Você
pode ativar isso na GUI de administração no menu Configuração, em Servidores, na guia IMAP
do servidor. Clique na caixa de seleção. Assume-se que o servidor de origem também tem o
login de texto claro ativado, mas para fazer isso, leia a documentação de seu servidor
respectivo.

Você pode interromper imapsync a qualquer momento com CTRL-C. Basta reiniciar o mesmo
comando novamente para retomar a migração. Você também pode executá-lo mais de uma vez
para sincronizar as alterações para uma migração faseada. O Imapsync não copiará os
mesmos dados duas vezes, então você não precisa se preocupar com mensagens duplicadas.

​ eadMe​ enumera uma série


Eu usei imapsync para migrar de um Cyrus IMAPd para Zimbra. O R
de outros servidores IMAP compatíveis com imapsync.
Veja ​[Link] para obter mais informações sobre a instalação
imapsync.

Nota: ver ​Discussão: User_Migration​ se você está tendo problemas com a fonte imapsync.

IMAPSync com conexões TLS (STARTTLS)

Como as configurações padrão do Zimbra proíbem logins de texto sem formatação, usamos o
seguinte método para testar apenas se o IMAPSync realmente funcionaria:

$ Imapsync --nosyncacls --subscribe --syncinternaldates --fast --dry \


--host1 [Link] --user1 user@[Link] --password1 TotallySecret123 --tls1 \
--host2 [Link] --user2 user@[Link] --password2 TotallySecret456 --tls2

Isso não vai fazer nada, mas mostrar se ele iria funcionar. Se você realmente deseja migrar os
dados basta remover a opção "--dry" do exemplo acima.

Ativando e-mails com anexos de arquivos grandes (ZIMBRA IMAP tamanho


máximo é 10MB)

O tamanho máximo de e-mail máximo do IMAP do Zimbra é de 10MB. Isso fará com que erros
sejam levantados durante o imapsync para e-mails que são maiores que 10MB. Erros como os
seguintes serão exibidos no log imapsync.

+ Cópia msg # 131: 11690588 a pasta Pastas / Projetos / Consultoria


bandeiras de: [\ Visto] [ "16-Jul-2007 14:57:35 +1000"]
Não foi possível anexar msg # 131 (Assunto: [RE: Consultancy Approval]) para pasta Pastas / Projetos / Consultoria: 5160 Erro de
análise BAD: request too long

OU

+ Cópia msg # 87598: 54935762 a pasta Caixa de Entrada


bandeiras de: [\ Visto] [ "08-Feb-2008 14:09:05 -0500"]
Não foi possível anexar msg # 87598 (Assunto: [re: fotos]) para Pasta INBOX: 894 NO [TOOBIG] pedido demasiado longo

O servidor IMAP Zimbra usa zimbraFileUploadMaxSize para definir o tamanho máximo. O


padrão é 10MB se não estiver definido. Neste momento, a única maneira de configurá-lo é
através da linha de comando.

Use o seguinte comando como usuário do zimbra para aumentar para 50 MB:

Zmprov mcf zimbraMtaMaxMessageSize 52428800

Imapsync sobre SSL


Você pode usar conexões SSL com o imapsync fornecendo "--ssl1" e / ou "--ssl2" (e os "--port1
e / ou --port2" se usar portas não padronizadas) para cada uma das contas que você deseja
migrar.

Por exemplo:

$ Imapsync \
--nosyncacls --subscribe --syncinternaldates \
--host1 [Link] --user1 user1 --password1 secret1 --ssl1 \
--host2 [Link] --user2 user2 --password2 secret2 - -ssl2

NOTA: o imapsync não poderá autenticar no ZCS até que você "Habilite o login de texto
simples" para o serviço IMAP. Você pode definir essa opção em Configurações Globais ou em
Servidores em IMAP no ZCS Administration Console.

Exemplo

Remova os comentários (linhas começando com '#') para usar este comando:

$ Imapsync \
# imapsync com opções que podem ajudar a otimizar e modificar nomes de pastas não permitidos
--maxsize 52428800 --buffersize 8192000 \
--nofoldersizes --nosyncacls --subscribe --syncinternaldates \
--authmech2 PLAIN \
# não migrar pastas que parece que (ignore caso) lixo | Spam | lixo
--exclude '\ b (junk | Spam | Trash) (i?) \ b' \
# evitar todos os X-headers ao comparar mensagens
'--skipheader' X- * ' \
# evitar todos os sinalizadores de sistema fora do padrão (sinalizadores do sistema começam com '\')
# RFC 3501: \ respondidas, \ Sinalizada, \ excluídos, \ Visto, \ Recent, \ Draft
# Nota: necessidade \\\\ porque queremos s / \\ (? ...) e Perl faz \\ => \
's / \\\\ --regexflag (?! respondidas | Marcado | Deleted | Visto | recentes | Draft) [^ \ s] * \ s * // ig '\
# traduzir nomes de pastas para caracteres ZCS não permite
# * pontos (:) para hífen (-)
--regextrans2' s,:, -, g '\
# duplo aspas ( ") para aspas simples (' )
--regextrans2 's, \ ",' \ '', g '
# Remove espaços antes separadores e no final do nome da pasta
--regextrans2' s, \ s + (= / |? $) ,, g '
# alterar nomes de pastas reservados a algo que é permitido
--regextrans2 's, ^ (pasta | Calendário | Contactos | Enviado por email Contactos | Notebook | Tarefas) | $ 1 pasta (= /? $), ig' \
### local variável opções
--host1 "$ host1" --host2 "$ host2" \
--user1 "$ username" --user2 "$ username"
--password1 "$ pass1" --authuser2 "$ auth2" --password2 "$ pass2 "\
--regextrans2 's, \", -, g' \ # mudança cita a traços
--regextrans2 's, & AAo- | & AA0ACg- | & AA0ACgANAAo - (= / |? $) ,, g' \
--ssl1 --authmech1 PLAIN --maxcommandlength1 16384 \
# --delete2 \ # tenha cuidado - isso pode ser destrutível se não for usado com cuidado
# --dry --debug --debugimap \ opções # depuração
Migrar caixas de correio grandes e evitar tempos limite

Se você deseja migrar grandes caixas de correio (centenas de pastas e subpastas contendo
milhares de mensagens), o comportamento padrão do imapsync pode causar tempos limite no
lado do ZCS. Por padrão imapsync calcula um monte de números apenas por causa das
estatísticas. Desligando isso usando

--nofoldersizes --skipsize --fast

Além de opções acima a sincronização será muito mais rápido e tempo limite devido ao tempo
necessário para a computação de estatísticas não vai accour anymore.

Informações sobre a migração do Courier-IMAP e imapsync:


[Link] [1]

Migrar sem saber as senhas

No caso em que seu back-end de autenticação armazena a senha do usuário em formato


criptografado e você não os conhece, você pode ter a possibilidade de adicionar um segundo
backend de autenticação com os mesmos usuários, mas uma senha de sua escolha.

Durante um imap de cyrus para a migração de zimbra, veja como funcionou:

■ Openldap temporário instalado no terceiro servidor, provisionado com a lista de contas a


migrar
■ A autenticação externa do zimbra configurada com este servidor ldap (você pode usar 2
URLs de ldap diferentes, somente a conta de vinculação deve ser a mesma)
■ Cyrus imap já estava configurado para usar pam_ldap, que não gerenciou bem a
presença de 2 servidores ldap diferentes para autenticação (se o servidor ldap oficial
negasse autenticação, o segundo não era usado)
■ Se cyrus imap depende de pam_ldap, você pode mudar para pam_mysql, por exemplo.
Criar um banco de dados, tabela com login e senha e feed ...

Com isso no lugar, você pode manter o seu cyrus e zimbra servidor em execução sem
alteração para os usuários, mas sincronizar com os scripts mostrados abaixo.

Processamento em lote
Você pode automatizar a migração de vários usuários usando um script como o seguinte:

#! / bin / bash

logfile = "[Link]"
host1 = [Link] # host1 é Fonte
host2 = [Link] # host2 é Dest
domain = [Link] # domínio é onde conta de e-mail é
# tudo após símbolo @

## #### não modifique passado aqui ######


date = `date +% X _-_% x`
echo" ">> $ logfile
echo" -------------- ---------------------- ">> $ logfile
echo" imapsync começou .. $ date ">> $ logfile
echo" ">> $ logfile

{while IFS -benzóico. Ler u1 p1; fazer


user = $ u1 "@" $ domain
echo "Sincronizar usuário $ user"
data = `date +% X _-_% x`
echo" iniciar a sincronização do usuário $ u1 "
echo" Iniciando $ u1 $ date ">> $ logfile
imapsync --nosyncacls --syncinternaldates --host1 $ host1 --user1 "$ user" --password1 \
"$ p1" --host2 $ host2 --user2 "$ user" --password2 "$ p1"
data = `date + % X _-_% x`
echo "O usuário $ user feito"
echo "Terminado $ user $ date" >> $ logfile
echo "" >> $ logfile
feito; } <[Link]

date = `date +% X _-_% x`


echo" ">> $ logfile
echo" imapsync Acabou .. $ date ">> $ logfile
echo" ----------- ------------------------- ">> $ logfile

Crie um arquivo ​[Link] com os nomes de usuário e senhas no seguinte formato:

utilizador, palavra-passe
user2; password2

Aqui está um segundo script de lote que permitirá nomes de usuários diferentes nos servidores
de Origem e Destino. Nomeie esse arquivo imapsyncbatch então chmod para 755 execute com
./imapsyncbatch pode ser usado com a opção --dry para uma execução em seco.

#! / bin / bash
## Modificado por Steve Fink [Link]
## Este Script imapsync lote é usado quando você tem diferentes
## nomes de usuários na origem e servidores de destino
## (kinda o que imapsync foi destinado para)
## o formato para o arquivo [Link] é
## sourceusername, SourcePassword, destinationusername, destinationpassword

## Obter a informação
enquanto [-z $ infile]; não
echo "Qual é o caminho para o arquivo de entrada?"
leia infile
feito
enquanto [-z $ host1]; não
echo "? Qual é a fonte Anfitrião ([Link])"
ler host1
feito
enquanto [-z $ host2]; não
echo "? Qual é o Destination Host ([Link])"
ler host2
feito
enquanto [$ domain -z]; não
echo "? Qual é o domínio ([Link])"
ler domínio
feito
enquanto [-z $ logfile]; fazer
echo "Onde você gostaria o log? ([Link])"
ler arquivo de log
feito

if [! -f $ infile]; em seguida,
echo "O arquivo de entrada não existe!"
echo ""
echo "Qual é o caminho para o arquivo de entrada?"
leia infile
fi
ARQUIVO DE ENTRADA = $ infile

clara
echo "imapsync está prestes a começar a usar:"
echo "Input File $ ARQUIVO DE ENTRADA"
echo "Source Host $ host1"
echo "Destination Host $ host2"
echo "Domínio $ domain"
eco "Log File $ logfile "
echo" "
echo" esta informação é correcta? "
echo "Pressione Enter para continuar ou"
eco "Hit CTRL + C para começar de novo"
ler esperar

## Comece imapsync
date = `date +% X _-_% x`
echo" imapsync Logfile começou @ $ logfile "
echo" ">> $ logfile
echo "------------------------------------" >> $ logfile
echo "imapsync começou. . $ date ">> $ logfile
echo" ">> $ logfile

#Get livrar da vírgulas


tr" "," "<$ ARQUIVO dE ENTRADA | enquanto leitura u1 p1 u2 p2
fazer
user = $ u1 "@" $ domain
user2 = $ u2 "@" $ domain
echo "Sincronizar usuário $ user para US $ user2"
data = `date +% X _-_% x`
echo" Start sincronizando usuário $ user para US $ user2 "
echo" Iniciando $ u1 $ date ">> $ logfile
imapsync $ 1 --nosyncacls --syncinternaldates \
--exclude" #KnownSpam "--exclude" #FalsePositives "\
--exclude" Trash " --exclude "Itens excluídos" \
--exclude "mensagens excluídas" --exclude "Eliminado" \
--exclude "enviado" --exclude "Itens Enviados" \
--exclude "Mensagens enviadas" \
--host1 $ host1 - -user1 "$ user" --password1 "$ p1" \
--host2 $ host2 --user2 "$ user2" --password2 "$ p2"
data = `date +% X _-_% x`
echo" O usuário $ user para US $ user2 feito "
echo" Terminado $ user para US $ user2 $ date ">> $ logfile
echo" ">> $ logfile
feito

date =` date +% X _-_% x`


echo "" >> $ logfile
echo "imapsync Acabou .. $ date ">> $ logfile
echo" ------------------------------------ "> > $ Logfile

O formato para o arquivo .csv para este script é: sourceusername, sourcepassword,


destinationusername, destinationpassword

Referencias

Traduzido por Google translate e

Retirado de " ​[Link] "

Você também pode gostar