我有 CentOS Linux 版本 7.6.1810、Postfix + Dovecot、Apache/2.4.39。我的可用空间不足。我目前安装了一个新的磁盘驱动器,因此我正在寻找一种安全的方法将我的 vmail 文件夹移动到新位置(而不是另一台服务器),并且无需停机即可完成此操作。只需更改我的 postfix 的 main.cf 即可
virtual_mailbox_base = /var/vmail
到
virtual_mailbox_base = /mnt/new_folder
并将所有文件复制/var/vmail
到某个/mnt/new_folder
位置?
答案1
如果有人有同样的疑问:停止 POSTFIX 和 DOVECOT 服务。在下一个文件中,替换包含 /var/vmail 的行:
/etc/dovecot/dovecot.conf:
mail_location = maildir:/var/vmail/%d/%n
/etc/dovecot/dovecot-mysql.conf:
password_query = SELECT username as user, password, concat('/ var /vmail/', maildir) as userdb_home, concat('maildir:/ var /vmail/', maildir) as userdb_mail, 101 as userdb_uid, 12 as userdb_gid FROM mailbox WHERE username = '%u' AND active = '1'
user_query = SELECT concat('/ var /vmail/', maildir) as home, concat('maildir:/ var /vmail/', maildir) as mail, 101 AS uid, 12 AS gid, CONCAT('*:messages=0:bytes=', quota) as quota_rule FROM mailbox WHERE username = '%u' AND active = '1'
/etc/postfix/main.cf
virtual_mailbox_base = /var/vmail
到达所需目的地,例如:
/mnt/vmail
启动 POSTFIX 和 DOVECOT,并重新启动服务。
答案2
我认为最简单的解决方案是直接将新磁盘挂载在/var/mail
,例如:
- 停止 Postfix 和 Dovecot
- 移走 /var/mail:
mv /var/mail /var/mail.bak
- 创建一个新的
/var/mail
- 挂载新磁盘
/var/mail
- 将旧数据从
/var/mail.bak
复制到/var/mail
- 重新启动 Postfix 和 Dovecot
/var/mail.bak
确认一切正常后即可删除