Ротация логов в Linux
Для сайтов, имеющих активную посещаемость или большое количество уведомлений и ошибок PHP на многих страницах сайта, размеры журналов могут очень быстро разрастись и в конечном итоге заполнить диск сервера. Для предотвращения этих ситуаций в Linux есть стандартный инструмент ротации логов logrotate
.
Для примера возьмем логи веб-сервера. Раз в сутки, время можно задавать на свое усмотрение, файл лога с именем access.log
переименовывается службой logrotate
в access.log.1
и проходит через gzip-сжатие, после чего получает имя access.log.1.gz
. А вместо переименованного access.log
тут же создается новый пустой файл с этим именем, куда и продолжает писаться информация о посещениях.
На следующие сутки, уже при наличии файла access.log.1.gz
, аналогично создается файл уже с именем access.log.2.gz
, таким образом далее все дни. Количество хранимых архивов и период можно настроить.
По такому принципу ротируются логи всех служб сервера. Главная задача ротации логов, экономить место на диске, а также иметь понятную логику доступа к архивам логов.
В случае бесконтрольной и объемной записи в лог, пространство диска может очень быстро закончиться еще до момента срабатывания ротации логов. В этом случае необходимо настроить ротацию логов на более частый период.