Каждое утро моя служба голубятни отключается, и мне нужно запускать ее снова, и это повторяется изо дня в день, поэтому я искал ключ, чтобы выяснить, почему это происходит, и я обнаружил, что ошибки на / 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)"
И я вижу, что время, когда эта ошибка отображалась, было в то же время, когда служба отключилась, поэтому я вижу в этом причину проблемы.
Кстати, я действительно не знаю, что происходит, потому что когда я печатаю: 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
считает inodes FS.
Если вы изменили файл журнала, уже открытый каким-либо процессом, этот процесс продолжит запись в старый файл, а не в новый, потому что дескриптор файла связан с индексом, а не с именем файла. Итак, у вас есть запись в файл, который, кажется, был "перевернут" несколько дней назад, но его индексные дескрипторы все еще используются, а файл растет и увеличивается до тех пор, пока свободные индексы не будут исчерпаны.
Для правильного поведения вы должны перезапустить процесс после ротации его файла журнала. Другой подход - использовать syslog
вместо входа непосредственно в файл.
Помните, что проблема не должна быть связана с dovecot
а с каждым программным обеспечением с интенсивным ведением журнала, например apache
.
Я бы посоветовал проверить бесплатные номера inode
df -i
Если он заполнен на 100%, удалите некоторые из них.