前言:linux
因为公司的旧的邮件服务器操做系统版本过低,因此升级到了一个新的操做版本后,咱们在新的服务器上部署好了不一样邮件域(临时的)的邮件服务器,为了减少对业务的影响,咱们先中止业务对邮件服务器的更新,并使用imapsync将原来的邮件服务器的全部邮箱都迁移到新的邮件服务器上,迁移速度很快,迁移完成后,咱们测试下新的邮件服务器,当能够正常使用的时候,咱们切换新的域名到新邮件服务器上。bash
imapsync是啥?服务器
imapsync能够实现邮件服务器迁移,支持 IMAP 的邮箱,它用于同步两个imap邮箱 (仅适合迁移邮箱或者备份,不适合同步两个有用户同时访问的 imap 账号)ide
安装 imapsync (能够装在要同步的任意一台服务器上,也能够装在第三方的服务器上),这里咱们安装到新邮件服务器上,使用下面的命令: 工具
yum install imapsync测试
imapsync的使用能够执行“imapsync --help”进行查看,由于很简单,因此下面提供一个参考的例子:
ui
#!/bin/bash - spa
#usage: time /$path/imapsync_mail.sh > /root/sync_mail.log操作系统
mail_accounts=(orm
zhangdh1113
lance
linuxblind
)
accounts_passwd=(
'zdh@2013'
'zdh@2014'
'zdh@2015'
)
i=0
while [ $i -lt ${#mail_accounts[@]} ];do
# uid=`id -u ${mail_accounts[$i]} 2>/dev/null`
# if [ $? -eq 0 ]; then
# echo "usesrname \"${mail_accounts[$i]}\" already exist with its id \"$uid\"" >&2
# exit 1
# fi
# useradd ${mail_accounts[$i]}
# echo "${accounts_passwd[$i]}" |passwd --stdin ${mail_accounts[$i]}
# echo "user \"${mail_accounts[$i]}\" was created successfully!"
#userdel ${mail_accounts[$i]}
#rm -rf /home/${mail_accounts[$i]}
/usr/bin/imapsync --host1 mail.a.com --user1 ${mail_accounts[$i]} --password1 ${accounts_passwd[$i]} --host2 mail.b.com --user2 ${mail_accounts[$i]} --password2 ${accounts_passwd[$i]} --delete2folders --delete2 >> /root/imap_sync.log 2>> /root/imap_sync.error.log
let i++
done
exit 0
固然,某些状况下,mb2md.pl工具也能实现这个功能。