在 Ubuntu 上迁移邮件服务器数据,通常取决于你使用的邮件系统类型(如 Postfix + Dovecot、Zimbra、Mailcow、iRedMail 等)。下面我以最常见的 Postfix + Dovecot(系统用户 / 虚拟用户)为例,给你一套通用、可落地的迁移方案,并补充其他场景。
dpkg -l | grep -E "postfix|dovecot|mysql|sqlite"
常见组合:
/home/user/Maildir/var/vmail/domain/usersystemctl stop postfix dovecot
rsync -avz --delete /var/vmail/ root@新服务器:/var/vmail/
或系统用户:
rsync -avz /home/ root@新服务器:/
imapsync \
--host1 oldmail.example.com --user1 user@domain --password1 xxx \
--host2 newmail.example.com --user2 user@domain --password2 xxx
# 源服务器
getent passwd | grep vmail
手动或脚本创建用户。
导出导入 MySQL:
mysqldump maildb > maildb.sql
scp maildb.sql newserver:
mysql maildb < maildb.sql
rsync -avz /etc/postfix /etc/dovecot root@newserver:/etc/
rsync -avz /etc/letsencrypt newserver:/etc/
或复制:
postfix check
doveconf -n
启动服务:
systemctl start postfix dovecot
修改 MX 记录:
example.com MX 10 mail.example.com
并等待 TTL 过期(通常 1–24 小时)。
zmprov export
rsync /opt/zimbra
docker compose down
rsync -avz /opt/mailcowdata newserver:/opt/
docker compose up -d
类似 Postfix + Dovecot + MySQL 方案。
tail -f /var/log/mail.log
如果你能告诉我:
我可以给你更精确的命令和脚本。