在 Ubuntu 上备份邮件服务器,通常要分三部分:邮件数据、数据库(如有)、配置文件。下面给你一套通用、可落地的备份方案,适用于常见的邮件系统(Postfix / Dovecot / Roundcube / iRedMail / Mailcow 等)。
常见组合:
下面以 Postfix + Dovecot(含 Roundcube)为例说明。
Dovecot 默认存储位置:
/var/mail/
/var/vmail/
/home/*/Maildir/
查看实际路径:
grep mail_location /etc/dovecot/dovecot.conf
✅ 备份示例:
rsync -aAXv /var/vmail/ /backup/mail-data/
建议:
rsync-aAX)/etc/postfix/
/etc/dovecot/
/etc/ssl/
/etc/opendkim/
/etc/opendmarc/
/etc/default/
✅ 备份:
tar czvf /backup/mail-config-$(date +%F).tar.gz \
/etc/postfix \
/etc/dovecot \
/etc/ssl \
/etc/opendkim \
/etc/opendmarc
Roundcube、iRedMail 等会用到数据库。
mysqldump -u root -p --all-databases > /backup/mysql-$(date +%F).sql
或只备份邮件相关库:
mysqldump -u root -p roundcube > /backup/roundcube.sql
如果邮件用户是系统用户:
/etc/passwd
/etc/shadow
/etc/group
✅ 备份:
tar czvf /backup/user-accounts.tar.gz \
/etc/passwd /etc/shadow /etc/group
#!/bin/bash
BACKUP_DIR="/backup/mailserver"
DATE=$(date +%F)
mkdir -p $BACKUP_DIR
# 邮件数据
rsync -aAXv /var/vmail/ $BACKUP_DIR/maildata/
# 配置
tar czvf $BACKUP_DIR/config-$DATE.tar.gz \
/etc/postfix /etc/dovecot /etc/ssl
# 数据库
mysqldump -u root -p --all-databases > $BACKUP_DIR/mysql-$DATE.sql
echo "Mail server backup completed: $DATE"
赋予执行权限:
chmod +x /root/backup-mail.sh
编辑定时任务:
crontab -e
每天凌晨 2 点备份:
0 2 * * * /root/backup-mail.sh >> /var/log/mail-backup.log 2>&1
rsync -avz /backup/mailserver/ user@backup-server:/data/mail-backup/
rclone sync /backup/mailserver remote:mail-backup
Mailcow:
cd /opt/mailcow-dockerized
docker compose exec mysql mysqldump -u root -p mailcow > mailcow.sql
数据目录:
/opt/mailcow-dockerized/vmail
| 类型 | 路径 |
|---|---|
| 邮件 | /var/vmail 或 /var/mail |
| 配置 | /etc/postfix, /etc/dovecot |
| 证书 | /etc/ssl |
| 数据库 | mysqldump |
| 用户 | /etc/passwd 等 |
如果你愿意,可以告诉我:
我可以给你一份完全针对你环境的备份方案。