{"id":436,"date":"2013-05-08T12:02:21","date_gmt":"2013-05-08T15:02:21","guid":{"rendered":"http:\/\/www.viazap.com.br\/?p=436"},"modified":"2013-05-08T12:02:21","modified_gmt":"2013-05-08T15:02:21","slug":"migrando-servidores-zimbra","status":"publish","type":"post","link":"https:\/\/blog.clusterweb.com.br\/?p=436","title":{"rendered":"Migrando Servidores Zimbra"},"content":{"rendered":"<p>O Zimbra \u00e9 um servidor de colabora\u00e7\u00e3o completo, o \u201clindo\u201d nome \u00e9 porque ele foi criado pela empresa Zimbra e depois comprado pelo Yahoo e finalmente pela VMware mas como o nome j\u00e1 estava consolidado ficou <img decoding=\"async\" alt=\":-P\" src=\"http:\/\/www.cooperati.com.br\/wp-includes\/images\/smilies\/icon_razz.gif\" \/> . Ele \u00e9 um concorrente direto do Exchange da Microsoft e como ele tem: Email, agenda colaborativa, interface de administra\u00e7\u00e3o completa, Porta Arquivos e gerenciamento de recursos, possui cliente integrado de Email (Exchange tem o Outlook ele tem o Zimbra Desktop), etc\u2026<\/p>\n<p>Pode ser comprado com Licen\u00e7a de suporte e uso, pode tamb\u00e9m ser utilizado em sua vers\u00e3o Open Source que conta com todas as funcionalidades principais. Possui muita documenta\u00e7\u00e3o (wiki.zimbra.com) e integra com LDAP, Active Directory, etc.<\/p>\n<p>Mas eu vou falar hoje sobre migra\u00e7\u00e3o entre servidores Zimbra, j\u00e1 trabalho com ele h\u00e1 alguns anos e em alguns clientes chegou a hora de atualizar a vers\u00e3o. \u00c9 uma tarefa simples, d\u00e1 um pouco de trabalho mas \u00e9 simples, basta ter um servidor novo instalado e funcionando(basta seguir alguns dos muitos tutoriais que existem por a\u00ed para isso <img decoding=\"async\" alt=\":-)\" src=\"http:\/\/www.cooperati.com.br\/wp-includes\/images\/smilies\/icon_smile.gif\" \/> ) e fazer a migra\u00e7\u00e3o.<\/p>\n<p>J\u00e1 migrei de Zimbra 5.0.9 para 7, de 6 para 8 e de 7 para 8. Esse procedimento funcionou em todas as migra\u00e7\u00f5es que fiz para a vers\u00e3o 8 do Zimbra, que \u00e9 a mais nova e muito mais r\u00e1pida. Portanto fa\u00e7a em uma ambiente de teste, confira se h\u00e1 igualdade nas contas dos servidores e depois pode fazer a migra\u00e7\u00e3o. Lembre-se que n\u00e3o \u00e9 atualizar o software, \u00e9 migrar para outro servidor com vers\u00e3o mais nova do software.<\/p>\n<p>Esse procedimento n\u00e3o altera nada no servidor de produ\u00e7\u00e3o, ou seja, pode fazer que continua tudo funcionando.<\/p>\n<p>&nbsp;<\/p>\n<p>Vamos \u00e0 migra\u00e7\u00e3o.<\/p>\n<p>Com os dois servidores na mesma rede, vamos de 192.168.1.250 produ\u00e7\u00e3o e 192.168.1.251 migra\u00e7\u00e3o, vamos come\u00e7ar o processo.<\/p>\n<p>Primeiro sincronizamos as contas, podem ser todas ou apenas algumas, no caso faremos com todas. No servidor de migra\u00e7\u00e3o faremos o servi\u00e7os atrav\u00e9s de linha de comando, mas n\u00e3o se preocupe farei um pequeno tutorial sobra a fun\u00e7\u00e3o na interface de administra\u00e7\u00e3o posteriormente <img decoding=\"async\" alt=\":-)\" src=\"http:\/\/www.cooperati.com.br\/wp-includes\/images\/smilies\/icon_smile.gif\" \/> .<\/p>\n<p>Se voc\u00ea tem 10 ou 20 usu\u00e1rios crie de novo e deixe de pregui\u00e7a <img decoding=\"async\" alt=\":-P\" src=\"http:\/\/www.cooperati.com.br\/wp-includes\/images\/smilies\/icon_razz.gif\" \/> , mas se tem 200, 400, 1500, 2500\u2026 Fa\u00e7a com scripts que \u00e9 muito melhor <img decoding=\"async\" alt=\":-)\" src=\"http:\/\/www.cooperati.com.br\/wp-includes\/images\/smilies\/icon_smile.gif\" \/><\/p>\n<p>Primeiro vamos obter uma lista das contas e dados b\u00e1sicos dos usu\u00e1rios com o seguinte procedimento:<\/p>\n<p>Logue no servidor de produ\u00e7\u00e3o como root e mude para usu\u00e1rio zimbra:<br \/>\n<strong># su \u2013 zimbra<\/strong><\/p>\n<p>Entre no diret\u00f3rio \/tmp e crie um diret\u00f3rio contas:<br \/>\n<strong>$ cd \/tmp<br \/>\n$ mkdir contas<\/strong><\/p>\n<p>Crie o seguinte script no \/tmp que ir\u00e1 obter os dados(nome completo(displayName, primeiro nome(givenName), sobrenome(sn),senha(userPassword) dos usu\u00e1rios e grav\u00e1-los nos diret\u00f3rio contas:<\/p>\n<div>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>vi obtem-contas-zimbra.sh\r\n#!\/bin\/bash\r\n# Obtemos uma lista de todas as contas do servidor\r\nZMPROV=\"\/opt\/zimbra\/bin\/zmprov\"\r\nfor MAIL in $($ZMPROV -l gaa | sort); \tdo\r\n\t\tDNOME=$($ZMPROV -l ga $MAIL displayName | grep displayName | awk -F \" \" '{print $2\" \"$3\" \"$4\" \"$5}')\r\n\t\tPNOME=$($ZMPROV -l ga $MAIL givenName | grep givenName | awk -F \" \" '{print $2}')\r\n\t\tSNOME=$($ZMPROV -l ga $MAIL sn | grep sn | awk -F \" \" '{print $2}')\r\n\t\tSENHA=$($ZMPROV -l ga $MAIL userPassword | grep userPassword | awk -F \" \" '{print $2}')\r\n\r\n   \t\techo \"Conta: $MAIL\" &gt; contas\/dados-$MAIL\r\n   \t\techo \"Display: $DNOME\" &gt;&gt; contas\/dados-$MAIL\r\n\t\techo \"Nome: $PNOME\" &gt;&gt; contas\/dados-$MAIL\r\n\t\techo \"Sobrenome: $SNOME\" &gt;&gt; contas\/dados-$MAIL\r\n\t\techo \"Senha: $SENHA\" &gt;&gt; contas\/dados-$MAIL\r\ndone<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Esse script ir\u00e1 criar um arquivo no diret\u00f3rio <strong>contas<\/strong> com o nome <em>dados-EMAIL_DA_PESSOA<\/em> com os dados necess\u00e1rios.<\/p>\n<p>Execute o script da seguinte forma:<\/p>\n<p><em>$ chmod 755 obtem-contas-zimbra.sh<br \/>\n$ .\/obtem-contas-zimbra.sh<\/em><\/p>\n<p>Agora basta copiar esse diret\u00f3rio para o servidor de migra\u00e7\u00e3o(ftp, ssh, rsync, pendrive, cd-rom \u2026 use seu recurso preferido).<\/p>\n<p>No servidor de migra\u00e7\u00e3o logue como root, mude para o usu\u00e1rio zimbra e copie o diret\u00f3rio <strong>contas<\/strong> para o <strong>\/tmp<\/strong> :<\/p>\n<p># su \u2013 zimbra<br \/>\n$ cd \/tmp<\/p>\n<p>Agora crie o seguinte script para criar os usu\u00e1rios:<\/p>\n<div>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>vi cria-contas.sh\r\n\r\n#!\/bin\/bash\r\n# Cria as contas no Zimbra\r\nZMPROV=\"\/opt\/zimbra\/bin\/zmprov\"\r\nfor DADOS in $(ls contas); do\r\n\r\n\tEMAIL=$(grep Conta contas\/$DADOS | awk -F \" \" '{print $2}')\r\n\tDNAME=$(grep Display contas\/$DADOS | awk -F \" \" '{print $2\" \"$3\" \"$4\" \"$5}')\r\n\tPNAME=$(grep Nome contas\/$DADOS | awk -F \" \" '{print $2}')\r\n\tSNAME=$(grep Sobrenome contas\/$DADOS | awk -F \" \" '{print $2}')\r\n\tSENHA=$(grep Senha contas\/$DADOS | awk -F \" \" '{print $2}')\r\n\r\n\t$ZMPROV ca \"$EMAIL\" \"$SENHA\" displayName \"$DNAME\" givenName \"$PNAME\" sn \"$SNAME\"\r\n\tdone<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Esse script l\u00ea todos os arquivos do diret\u00f3rio contas, transforma os dados que obtivemos no servidor de produ\u00e7\u00e3o e cria as contas, caso algum dados n\u00e3o exista(displayName, givenName, sn) ele cria com valor padr\u00e3o do nome da conta. N\u00e3o podem estar vazios <strong>EMAIL<\/strong> e <strong>SENHA<\/strong>.<\/p>\n<p>Execute o script da seguinte forma:<\/p>\n<p><em>$ chmod 755 cria-contas.sh<br \/>\n$ .\/cria-contas.sh<\/em><\/p>\n<p>Pronto, com os usu\u00e1rios criados vamos aos emails, se pudermos parar o servidor de produ\u00e7\u00e3o podemos criar exportar as mensagens conta a conta e depois importar no servidor de migra\u00e7\u00e3o, mas se n\u00e3o pudermos temos um script de sincronia chamado <strong>imapsync<\/strong>, que pode nos ajudar.<\/p>\n<p>Vou colocar aqui os dois m\u00e9todos utilizados para que voc\u00eas possam escolher.<\/p>\n<p>O primeiro m\u00e9todo iremos parar o recebimento de email, pode ser desligando o acesso externo, pode ser bloqueando as portas de leitura\/recebimento, bem voc\u00ea \u00e9 quem sabe. Vamos ao procedimento:<\/p>\n<p>No servidor de produ\u00e7\u00e3o, fa\u00e7a o seguinte:<\/p>\n<p># su \u2013 zimbra<br \/>\n$ cd \/tmp<br \/>\n$ mkdir mensagens<\/p>\n<p>Agora vamos usar o seguinte script para importar as caixas:<\/p>\n<div>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>vi obtem-mensagens.sh\r\n#!\/bin\/bash\r\n# Obtemos uma lista de todas as contas do servidor\r\nZMPROV=\"\/opt\/zimbra\/bin\/zmprov\"\r\nZMMAILBOX=\"\/opt\/zimbra\/bin\/zmmailbox\"\r\nfor MAIL in $($ZMPROV -l gaa | sort); \tdo\r\n\t\t$ZMMAILBOX -z -m $MAIL getRestURL \"\/\/?fmt=tgz\" &gt; mensagens\/$MAIL.tgz\r\ndone<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Execute o script da seguinte forma:<\/p>\n<p><em>$ chmod 755 obtem-mensagens.sh<br \/>\n$ .\/obtem-mensagens.sh<\/em><\/p>\n<p>Com esse script criamos um arquivos chamado, <strong>emaildousuario@dominio.com.br.tgz<\/strong> dentro do diret\u00f3rio mensagens, agora basta compartilhar esse diret\u00f3rio(copiar pode ser invi\u00e1vel se for muito grande, eu lidei com diret\u00f3rios com mais de 200GB e sei disso <img decoding=\"async\" alt=\":-)\" src=\"http:\/\/www.cooperati.com.br\/wp-includes\/images\/smilies\/icon_smile.gif\" \/> ), pode compartilhar via NFS, SMB, CIFS, GlusterFS, o que voc\u00ea desejar, desde que compartilhe com o servidor de migra\u00e7\u00e3o.<\/p>\n<p>No servidor de migra\u00e7\u00e3o entre no diret\u00f3rio onde as mensagens foram compartilhadas e fa\u00e7a o seguinte como usu\u00e1rio zimbra(ele tem que ter direito de leitura\/escrita no diret\u00f3rio para criar o script e para ler os arquivos. Ex: <strong>\/mnt\/mensagens<\/strong><\/p>\n<p># su \u2013 zimbra<br \/>\n$ cd \/mnt\/<\/p>\n<p>Crie o seguinte script:<\/p>\n<div>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>vi importa-mensagens.sh\r\n\r\n#!\/bin\/bash\r\n# Obtemos uma lista de todas as contas do servidor\r\nZMPROV=\"\/opt\/zimbra\/bin\/zmprov\"\r\nZMMAILBOX=\"\/opt\/zimbra\/bin\/zmmailbox\"\r\nfor MAIL in $($ZMPROV -l gaa | sort); \tdo\r\n                $ZMMAILBOX -z -m $MAIL postRestURL \"\/\/?fmt=tgz&amp;resolve=reset\" mensagens\/$MAIL.tgz \r\ndone<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Execute o script da seguinte forma:<\/p>\n<p><em>$ chmod 755 importa-mensagens.sh<br \/>\n$ .\/importa-mensagens.sh<\/em><\/p>\n<p>Pronto, todas as mensagens est\u00e3o importadas, agora basta conferir e habilitar o servidor novo para receber e enviar as mensagens.<\/p>\n<p>Mas se voc\u00ea n\u00e3o pode parar o servidor para exportar\/importar as mensagens pode usar o script <strong>imasync<\/strong> para fazer a sincronia com os servidores <em>online<\/em>.<\/p>\n<p>Utilizei a vers\u00e3o 1.3.15, as anteriores deram erro.<\/p>\n<p>J\u00e1 estando com as contas criadas lembre de liberar o login em texto plano (para a migra\u00e7\u00e3o apenas), crie no servidor de migra\u00e7\u00e3o o seguinte script:<\/p>\n<div>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>vi migra-mensagens.sh\r\n#!\/bin\/bash\r\nZMPROV=\"\/opt\/zimbra\/bin\/zmprov\"\r\nfor USER in $($ZMPROV -l gaa); do\r\n\r\nimapsync --nosyncacls --host1 192.168.1.250 --host2 192.168.1.251 --authmech1 PLAIN --authmech2 PLAIN --ssl1 --user1 $USER --authuser1 admin@dominio.com.br --password1 'senha_do_admin_zimbra_producao' --ssl2 --user2 $USER --authuser2 admin@dominio.com.br --password2 'senha_do_admin_zimbra_migracao'\r\n\r\ndone<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Agora execute:<\/p>\n<p><em>$ chmod 755 migra-mensagens.sh<br \/>\n$ .\/migra-mensagens.sh<\/em><\/p>\n<p>Pronto, contas e mensagens criadas. Se o servidor n\u00e3o for entrar em produ\u00e7\u00e3o no dia, basta repetir o script que ele atualiza as mensagens que ainda n\u00e3o est\u00e3o no servidor de migra\u00e7\u00e3o.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>O Zimbra \u00e9 um servidor de colabora\u00e7\u00e3o completo, o \u201clindo\u201d nome \u00e9 porque ele foi criado pela empresa Zimbra e depois comprado pelo Yahoo e finalmente pela VMware mas como o nome j\u00e1 estava consolidado ficou . Ele \u00e9 um concorrente direto do Exchange da Microsoft e como ele tem: Email, agenda colaborativa, interface de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1,42,51,74],"tags":[76,173,134],"class_list":["post-436","post","type-post","status-publish","format-standard","hentry","category-viazap","category-leitura-recomendada","category-linux-linuxrs","category-servidor-de-e-mail","tag-e-mail","tag-migracao","tag-zimbra"],"_links":{"self":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/436","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=436"}],"version-history":[{"count":1,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/436\/revisions"}],"predecessor-version":[{"id":437,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/436\/revisions\/437"}],"wp:attachment":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=436"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=436"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=436"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}