Как я могу ограничить размер Apache access_log и ограничить количество архивных журналов, которые он хранит? - программирование
Подтвердить что ты не робот

Как я могу ограничить размер Apache access_log и ограничить количество архивных журналов, которые он хранит?

Файл доступа Apache access_log вращается в архивной копии около 1 ГБ каждые несколько дней. Где настройки для управления этим? Я хотел бы иметь возможность контролировать как максимальный размер, так и количество архивных журналов, которые он хранит. Является ли эта часть конфигурации apache, или мне нужно написать задания cron (и другие), чтобы справиться с этим? Я запускаю pre-forked httpd.

4b9b3361

Ответ 1

В большинстве дистрибутивов Linux система настроена для ежедневного запуска logrotate. Вы не увидите его в crontab для root или для любого конкретного пользователя.

Легко изменить, как он обрабатывает файлы журналов. На моем сервере Ubuntu файл /etc/logrotate.conf имеет следующие настройки:

# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# uncomment this if you want your log files compressed
#compress

[и др.]

И вы можете посмотреть в каталоге /etc/logrotate.d/, чтобы увидеть настройки для определенных каталогов и приложений.

Ответ 2

Я бы использовал rotatelogs, инструмент, расположенный в каталоге bin apache.

Подробнее см. http://httpd.apache.org/docs/current/programs/rotatelogs.html. У этого есть преимущество существовать в моей системе HP-UX.

Или, как упоминалось ранее, вы можете использовать инструмент logrotate, который поставляется с большинством дистрибутивов.

Ответ 3

Обычным способом является запуск logrotate из cronjob, который может разрезать, копировать, сжимать, переименовывать, сохранять последние n и большинство других вещей, которые можно было бы хотеть. (Я думаю, что большинство дистрибутивов в эти дни устанавливают его по умолчанию.)