удаленный файл журнала таинственно появляется - PullRequest
0 голосов
/ 08 ноября 2011

Я запускаю passenger с nginx и несколько месяцев назад я удалил файл журнала nginx, который занимал мое дисковое пространство, в частности /var/log/nginx/error.log.1, размером около 5 ГБ, а затем перенастроил logrotate науменьшите размеры файла журнала.Все было хорошо, пока несколько дней спустя удаленный файл не был каким-то образом восстановлен процессами Пассажира (как показало lsof + L1).Кажется, что удаленный файл увеличивается в размере, так что, очевидно, он записывается в.Я не уверен, почему он также хочет записать в error.log.1, поскольку это повернутый файл журнала (хотя это было так долго, что я не уверен, переименовал ли я error.log в error.log.1, когда былудаление / перемещение объектов, и это может быть как-то связано с проблемой.) Перезапуск пассажира с помощью касания tmp / restart.txt не изменил lsof + L1 и не освободил место на диске, но перезапустил nginx.
Теперь действительно странная частьчто система была перезагружена с тех пор, и проблема все еще возникает.Проходит несколько дней или недель, а затем внезапно сокращается доступное дисковое пространство, я проверяю lsof + L1 и снова вижу удаленный файл.Что на земле может происходить здесь?Было бы интересно узнать, как это произошло, и было бы полезно узнать, как я мог бы предотвратить его повторение.Спасибо.

conf журнала rotate выглядит следующим образом: /var/log/nginx/*.log {ежедневный отсутствующий поворот 52 компресса delaycompress notifempty создать 640 root adm sharedscripts postrotate [!-f /var/run/nginx.pid] ||kill -USR1 cat /var/run/nginx.pid endcript}

1 Ответ

3 голосов
/ 26 июля 2012

Я знаю, что это старый поток, но я предполагаю, что перезапущена служба nginx, которая освободила блокировку удаленного файла журнала, для «внезапно свободного места на диске» (если вы удаляете файл с открытым дескрипторомдля него это будет демонстрировать поведение, которое вы описываете, пока этот дескриптор не будет выпущен).Похоже, функция logrotate не заставляет nginx освобождать дескриптор?

...