Postfix认为它没有足够的磁盘空间

最后结果

我通过将我的xvda分区从700MB调整到10GB来解决了这个问题。 我用Linode的控制面板来做到这一点,包括closuresVPS,运行resize操作,然后启动它。 非常感谢所有提供见解和解决scheme的人。 他们都是有用的和有益的。

原文问题

我将Postfix作为我的MTA运行,并且随机决定停止接收传入的电子邮件:

 Sep 14 07:50:26 zulu postfix/smtpd[27946]: warning: not enough free space in mail queue: 6832128 bytes < 1.5*message size limit 

在我的postconf

 message_size_limit = 10240000 queue_minfree = 25000000 

所有到我的系统的邮件都被拒绝了452 4.3.1 Insufficient system storage

我对分区和相关的魔法知之甚less,我只知道Postfix似乎告诉我它没有空间,事实上我的系统有足够的空间:

http://f.cl.ly/items/3d242t393a2F0M1x0q2H/Screen%20shot%202011-09-14%20at%208.34.44%20AM.png

最后,Postfix仍然向我的postmaster@账户发送失败通知,所以我真的很茫然。

编辑

 root@zulu:/# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda 679M 644M 6.9M 99% / tmpfs 249M 0 249M 0% /lib/init/rw udev 10M 112K 9.9M 2% /dev tmpfs 249M 0 249M 0% /dev/shm 

据我所知,邮件队列存储在/var/spool/postfix 。 我不完全确定如何确定这是否正确,但似乎是正确的:

 root@zulu:/var/spool/postfix# ls -al total 84 drwxr-xr-x 21 root root 4096 Sep 6 13:58 . drwxr-xr-x 4 root root 4096 Sep 6 06:55 .. drwx------ 2 postfix root 4096 Sep 14 08:37 active drwx------ 2 postfix root 4096 Sep 13 13:19 bounce drwx------ 2 postfix root 4096 Sep 6 06:55 corrupt drwx------ 3 postfix root 4096 Sep 12 06:13 defer drwx------ 3 postfix root 4096 Sep 12 06:13 deferred drwxr-xr-x 2 root root 4096 May 4 17:30 dev drwxr-xr-x 3 root root 4096 Sep 14 07:37 etc drwx------ 2 postfix root 4096 Sep 6 06:55 flush drwx------ 2 postfix root 4096 Sep 6 06:55 hold drwx------ 2 postfix root 4096 Sep 14 08:37 incoming drwxr-xr-x 2 root root 4096 Sep 14 07:37 lib drwx-wx--T 2 postfix postdrop 4096 Sep 8 21:41 maildrop drwxr-xr-x 2 root root 4096 Sep 12 06:13 pid drwx------ 2 postfix root 4096 Sep 14 07:37 private drwx--s--- 2 postfix postdrop 4096 Sep 14 07:37 public drwx------ 2 postfix root 4096 Sep 6 06:55 saved drwx------ 2 postfix root 4096 Sep 6 06:55 trace drwxr-xr-x 3 root root 4096 Sep 6 06:55 usr drwxr-xr-x 3 root root 4096 Sep 6 13:58 var 

FDISK:

 root@zulu:/# fdisk -l /dev/xvda Disk /dev/xvda: 734 MB, 734003200 bytes 255 heads, 63 sectors/track, 89 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/xvda doesn't contain a valid partition table 

我可能应该注意到,这是一个Linode VPS。

您展示大量空间的原因是因为您的linode图片大小为956mb,而您的帐户总共有20gb。 因此,你的实际服务器只有956mb的大小(给你6.9mb目前avilable)。 为了解决 – closures你的linode实例,调整图像大小以使用更多的帐户(build议使用它,除非你有其他图像需要运行)。

好的,我可以看到这个问题,但是我不确定剩下的那个磁盘空间在哪里。 这一行:

 /dev/xvda 679M 644M 6.9M 99% / 

说你的根文件系统只有679MB大小,其中你只有6.9MB的空闲空间(在错误信息中报告的数量)。

/var/spool/postfix在该文件系统中(就像其他的一样)。 所以如果你应该有20GB的可用空间,那么你的磁盘还没有被正确的分区。 如果是您自己的服务器,请运行fdisk -l /dev/xvda 。 这应该显示你的分区表。 如果是托pipe服务,请与您的提供商联系。

你的根目录已满,这是问题。 有几件事你可以马上做。 一,运行一个apt-get clean。 这将删除所有下载的文件系统上的软件包。 接下来,请执行以下操作:

 cd /var/log du -hs 

这将显示有多less空间用于日志。 如果有意义,请继续并发出du -hs *。 这将显示/ var / log中每个目录正在使用多less空间。 寻找一个使用最多的空间。 input它(cd其中是问题目录的名称,发出ls -lh并查看每个文件的大小,如果文件以.gz结尾,那么你可以直接删除它们(rm),或者如果有文件很大但不以.gz结尾,你不关心内容问题:

 > <filename> 

再次,问题文件的名称在哪里。 这应该让你回到运行,我相当有信心你会在/ var / log中find你的问题。