Назад | Перейти на главную страницу

Удаленные журналы доступа Apache по-прежнему занимают место

Я удалил apache2 other_vhosts_access.log.1 размером 7 ГБ, чтобы освободить место на нашем сервере. В основном я удалил все журналы доступа, кроме самых последних. Самый большой был несжатым - я предполагаю, что он не прошел через logrotate (который работает).

Запуск df -h не показывает лишнего места, и я пробовал каждую комбинацию apache/apachectl restart/reload/graceful и т.д .. как упоминалось в других вопросах - безрезультатно. lsof тоже не показывает открытый файл.

более чем вероятно, что вы удалили журналы, но apache заблокировал их.

Вы должны использовать lsof и ищите (удалено). Руководство IBM Вот. Способ исправить - перезапустить процесс apache, чтобы освободить файл.

Попробуйте скопировать / dev / null в свой файл журнала. Это должно обрезать ваш файл, не закрывая дескриптор файла, который держит apache ...

cp /dev/null other_vhosts_access.log.1

У меня была такая же проблема, и я решил ее следующим образом.

ПРОБЛЕМА:

Я удалил вручную access_log и error_log в каталоге /var/www/vhosts/mywebsite/logs/mywebsite1/ чтобы освободить место, но даже если файлы исчезли, пространство не освобождается.

РЕШЕНИЕ:

я использовал lsof отсортировано по размеру для поиска в большом файле (найдена команда Вот):

lsof -s | awk '$5 == "REG"' | sort -n -r -k 7,7 | head -n 100

Я нашел два больших файла access_log и error_log по другому пути (обратите внимание на разницу с предыдущим путем):

/var/www/vhosts/system/mywebsite1/logs/

Я сбрасываю эти два файла командой:

:>/var/www/vhosts/system/mywebsite1/logs/access_log

:>/var/www/vhosts/system/mywebsite1/logs/error_log

Файлы были очищены, а пространство освобождено.

Надеюсь, это может быть полезно.

В моем случае мне нужно было перезапустить rsyslog, который обрабатывает журналы в моей системе ubuntu и освободил все дисковое пространство.

Это может быть перезапущено sudo service rsyslog restart или если у вас 16.04+ с sudo systemctl restart rsyslog.