Migrando as contas do Servidor Atual para o Novo Servidor com o ImapSync
Vamos obter o imapsync
cd /usr/src git clone https://github.com/imapsync/imapsync.git
Vamos instalar as dependências do ImapSync
aptitude install libmail-imapclient-perl libdigest-md5-file-perl libterm-readkey-perl liburi-perl libio-tee-perl \ libio-socket-ssl-perl libfile-spec-perl libdigest-hmac-perl makepasswd libio-socket-ssl-perl libfile-copy-recursive-perl -y
Agora vamos acessar o diretório do imapsync
cd /usr/src/imapsync
Agora precisamos criar um diretório de controle interno dele
mkdir dist
Agora vamos compilar ele
make
Agora vamos mandar instalar ele
make install clean
Agora vamos pegar por exemplo a conta do nerso para sincronizar
Vamos criar um arquivo contendo o usuário e senha do servidor de email atual e o usuário e senha do servidor novo, nós podemos ter um usuário por linha
vim /usr/src/users nerso@douglasqsantos.com.br;senha1;nerso@douglasqsantos.com.br;senha2 douglas@douglasqsantos.com.br;senha1;douglas@douglasqsantos.com.br;senha2
O arquivo deve ser no seguinte formato:
usuário1;senha1;usuário2;senha2
Onde:
- usuário1: é o usuário do servidor atual que está no uol
- senha1: é a senha do usuário atual que está no uol
- usuário2: é o usuário do servidor novo que acabamos de montar
- senha2: é a senha do usuário do servidor novo que acabamos de montar
Nós vamos fazer o sincronismo de todas as contas que estiverem no arquivo /tmp/users
Agora vamos ao script de sincronismo
vim /usr/src/sincroniza.sh #!/bin/bash #------------------------------------------------------------------------- # sincroniza.sh # # Site : http://www.douglasqsantos.com.br # Autor : Douglas Q. dos Santos <douglas.q.santos@douglasqsantos.com.br> # Manutenção: Douglas Q. dos Santos <douglas.q.santos@douglasqsantos.com.br> # #------------------------------------------------------------------------- # Efetua o sincronismo das caixas de mensagens entre servidor de email #------------------------------------------------------------------------- # Histórico: # # Versão 1: # Data: 22/02/2011 # Descrição: Efetua o sincronismo das caizas de mensagens entre servidores # de email utilizando o imapsync no Debian Squeeze # #-------------------------------------------------------------------------- #Licença: http://creativecommons.org/licenses/by-sa/3.0/legalcode # #-------------------------------------------------------------------------- #VARIAVEIS GLOBAIS UTILIZADAS NO SCIRPT RED="\033[01;31m" GREEN="\033[01;32m" WHITE="\033[01;37m" CLOSE="\033[m" IMAPSYNC=$(which imapsync) SERVER1="mail.douglasqsantos.com.br" SERVER2="localhost" LISTA="/usr/src/users" LOGS="/var/log/sincroniza.log" #FUNÇÃO PARA SINCRONIZAR AS MENSAGENS _Sincronizar() { for END in $(cat ${LISTA}); do #O ARQUIVO DEVE ESTAR SEPARADO POR ; USER1=$(echo ${END} | cut -d ';' -f 1) SENHA1=$(echo ${END} | cut -d ';' -f 2) USER2=$(echo ${END} | cut -d ';' -f 3) SENHA2=$(echo ${END} | cut -d ';' -f 4) echo -e "${GREEN}SINCRONIZANDO A CONTA DE EMAIL ${RED}${USER1}${CLOSE} ${GREEN}DO SERVIDOR${CLOSE} ${RED}${SERVER1}${CLOSE} ${GREEN}PARA O SERVIDOR${CLOSE} ${RED}${SERVER2}${CLOSE} ${CLOSE}" sleep 2 ${IMAPSYNC} --host1 ${SERVER1} --user1 ${USER1} --password1 ${SENHA1} --host2 ${SERVER2} --user2 ${USER2} --password2 ${SENHA2} _Validar ${USER1} done } #FUNÇÃO PARA VALIDAR SE A CONTA CONSEGUIU SER SINCRONIZADA _Validar() { if [ $? -eq 0 ]; then echo -e "${GREEN}CONTA DE EMAIL ${RED}${1}${CLOSE} ${GREEN}SINCRONIZADA COM SUCESSO ${CLOSE}" else echo -e "${RED}FALHA AO SINCRONIZAR A CONTA DE EMAIL ${WHITE}${1}${CLOSE}${CLOSE}" #GERANDO LOGS DAS CONTAS QUE DERAO PROBLEMAS PARA SINCRONIZAR echo -e "FALHA AO SINCRONIZAR A CONTA DE EMAIL ${1} NA DATA: $(date)" >> ${LOGS} fi } _Sincronizar
Agora precisamos dar permissão para o nosso script
chmod +x /usr/src/sincroniza.sh
Agora é só mandar executar ele
/usr/src/sincroniza.sh
Em alguns casos precisamos habilitar o ssl ou tls podemos passar os seguinte parametros na linha de conexão com o server
--ssl1 : Use an SSL connection on host1. --ssl2 : Use an SSL connection on host2. --tls1 : Use an TLS connection on host1. --tls2 : Use an TLS connection on host2.
Quando acabar o sincronismo vamos ter algo como abaixo
Host2 Nb messages: 494 messages Host2 Total size: 117416141 bytes (111.98 MiB) Host2 Biggest message: 7830835 bytes (7.47 MiB) Host2 Time spent: 0.7 seconds ++++ Statistics Transfer started on : Sun Jan 13 16:39:00 2013 Transfer ended on : Sun Jan 13 16:39:13 2013 Transfer time : 13.0 sec Messages transferred : 0 Messages skipped : 496 Messages found duplicate on host1 : 12 Messages found duplicate on host2 : 0 Messages void (noheader) on host1 : 0 Messages void (noheader) on host2 : 0 Messages deleted on host1 : 0 Messages deleted on host2 : 0 Total bytes transferred : 0 (0.00 KiB) Total bytes duplicate host1 : 383100 (374.12 KiB) Total bytes duplicate host2 : 0 (0.00 KiB) Total bytes skipped : 117384026 (111.95 MiB) Total bytes error : 0 (0.00 KiB) Message rate : 0.0 messages/s Average bandwidth rate : 0.0 KiB/s Reconnections to host1 : 0 Reconnections to host2 : 0 Memory consumption : 82.4 MiB Biggest message : 0 bytes Initial difference host2 - host1 : -2 messages, -350985 bytes (-342.76 KiB) Final difference host2 - host1 : -2 messages, -350985 bytes (-342.76 KiB) Detected 0 errors This current imapsync is up to date Homepage: http://imapsync.lamiral.info/ CONTA DE EMAIL nerso@douglasqsantos.com.br SINCRONIZADA COM SUCESSO
Caso alguma conta de problemas para sincronizar vamos ter o arquivo de log em /var/log/sincroniza.log