我的主磁盘是 SSD,因此为了通过减少写入来延长其使用寿命,我遵循了一些建议并/var/spool
通过添加以下行来制作一个 RAM 磁盘/etc/fstab
:
tmpfs /var/spool tmpfs defaults,noatime,mode=1777 0 0
后来我配置了 postfix,因为我的系统上有一个 RAID 阵列,如果 RAID 阵列发生故障,mdadm 会向我发送电子邮件,这听起来是个好主意。电子邮件发送工作正常,直到我重新启动,此时:
postfix: fatal: open /etc/postfix-out/main.cf: No such file or directory
解决这个问题的方法是显然:
mkdir /var/spool/postfix
postfix check
然后我成立我还必须做:
mkfifo /var/spool/postfix/public/pickup
service postfix restart
现在发送电子邮件正常...直到下次重启。
那么:如果 /var/spool/postfix 不存在,在启动时自动重新创建其内容的最正确方法是什么?
我正在使用 Ubuntu Server 12.04。
答案1
小心将 /var/spool/ 放在 tmpfs 上!
用户 CRON JOBS 存储在 Ubuntu 上的 /var/spool/ 下!
如果你把/var/spool/ on tmpfs
你将无法有任何用户cron 作业,因为它们会在每次关机时被删除。
这系统但是,crontab 位于/etc/crontab
并且直接使用命令进行编辑crontab -e
。经过一番努力才发现这一点 :-(
答案2
是的,不要这样做。你没有指定你的 SSD 型号,但英特尔和 Crucial/Micron SSD 的额定写入量通常为驱动器总容量的 25%,每天写入量至少为 5 年。你是消失地除非您的设置中存在一些您没有描述的非常令人难以置信的内容,否则不太可能在这里发生任何事情。
答案3
/var/spool
不应是 postfix 的 tmpfs 挂载。使用 postfix 的活动队列目录路径,即;/var/spool/postfix/active
。确保该系统有备用电池和双电源,以降低数据丢失的风险。非活动(重试队列)postfix 目录应位于常规磁盘或 SSD 上。TMPFS 可用于生产,只需规划时间和耐心。我在 TMPFS 上有一些应用程序,即使在最高负载(每秒数千个“请求”)下,它们也能完全击败 SSD,实现 0 iowait。