每天早上,我的鸽舍服务都停止了,我需要重新开始,并且每天都在重复着,所以我正在寻找一些线索来找出为什么它会下降,我发现/ var / log / maillog文件:
"failed to write to main log: length=165 result=-1 errno=28 (No space left on device)" "write failed on panic log: length=122 result=-1 errno=28 (No space left on device)"
而且我看到,显示这个错误的时间与服务停止的时间是一样的,所以我把它看作是问题的原因。
顺便说一下,我真的不知道发生了什么,因为当我input: df -h我可以看到:
Filesystem Size Used Avail Use% Mounted on /dev/vda1 30G 27G 1.9G 94% / tmpfs 499M 0 499M 0% /dev/shm
所以磁盘没有满,为什么这个“没有留下设备空间”的警告? 我不知道该怎么尝试。
注意:这个错误自2周前开始发生,但是我的服务器在6个月以上运行。
这是因为df和du以不同的方式计算了使用/自由空间。 df计算层次结构中文件使用的空间,而du计算FS的inode。
如果您已经将某个进程已经打开的日志文件旋转了,那么该进程将继续写入旧文件而不是新文件,因为filedescriptor与inode不相关联,而不是文件名。 因此,您已经写入了几天前似乎被“旋转”的文件,但是其inode仍在使用中,并且文件增长并增长,直到空闲的inode将被耗尽。
为了正确的行为,您必须在日志文件旋转后重新启动进程。 另一种方法是使用syslog而不是直接login到文件中。
请记住,这个问题不应该与dovecot相关,而应该与每一个像apache一样密集logging的软件。
我会build议pl检查免费的inode号码
df -i
如果它是100%全部删除其中的一些