|  Раздел 8. HTTP-сервер Apache и вспомогательные программы
  Пункт 77. Страница руководства: rotatelogs       rotatelogs  — это простая программа для использования в сочетании с функцией передачи файлов журнала Apache. Он поддерживает ротацию на основе временного интервала или максимального размера журнала. 
 
Синопсис
      rotatelogs
 [ -l ]
 [ -L linkname ]
 [ -p program ]
 [ -f ]
 [ -t ]
 [ -v ]
 [ -e ]
 [ -c ]
 [ -n number-of-files ]
 logfile
 rotationtime|filesize(B|K|M|G)
 [ offset ]    
 
Параметры
-   
   -l    
- Вызывает использование местного времени, а не GMT в качестве основы для интервала или для  
   strftime(3)  форматирования с чередованием на основе размера. 
-   
   -L   имя ссылки 
- Вызывает создание жесткой ссылки из текущего файла журнала на указанное имя ссылки. Это можно использовать для непрерывного просмотра лога при поворотах с помощью такой команды, как
   
   tail -F linkname  . 
-   
   -p   программа 
- Если указано,  
   rotatelogs  будет выполнять указанную программу каждый раз, когда открывается новый файл журнала. Имя вновь открытого файла передается программе в качестве первого аргумента. При выполнении после ротации старый файл журнала передается в качестве второго аргумента.     rotatelogs  не ожидает завершения указанной программы, прежде чем продолжить работу, и не регистрирует какой-либо код ошибки, возвращаемый при завершении. Порожденная программа использует те же stdin, stdout и stderr, что и сама rotatelogs, а также наследует среду. 
-   
   -f    
- Заставляет файл журнала открываться немедленно, как только он
   
   rotatelogs  запускается, вместо того, чтобы ждать, пока будет прочитана первая запись в файле журнала (для незанятых сайтов может быть значительная задержка между запуском сервера и обработкой первого запроса). , что означает, что связанный файл журнала не «существует» до тех пор, что вызывает проблемы с некоторыми инструментами автоматического ведения журнала) 
-   
   -t    
- Заставляет файл журнала усекаться, а не вращаться. Это полезно, когда журнал обрабатывается в реальном времени такой командой, как tail, и нет необходимости в архивных данных. К имени файла не будет добавляться суффикс, однако строки формата, содержащие символы «%», будут учитываться.
 
-   
   -v    
- Создание подробного вывода на STDERR. Выходные данные содержат результат разбора конфигурации и все действия по открытию и закрытию файла.
 
-   
   -e    
- Эхо регистрируется на стандартный вывод. Полезно, когда журналы необходимо обрабатывать в режиме реального времени другим инструментом в цепочке.
 
-   
   -c    
- Создайте файл журнала для каждого интервала, даже если он пустой.
 
-   
   -n number-of-files    
- Используйте циклический список имен файлов без меток времени. С параметром -n 3 последовательностью открываемых файлов журнала будет "logfile", "logfile.1", "logfile.2", а затем перезапись "logfile". Доступно в версии 2.4.5 и выше.
 
-   
   logfile    
Путь плюс базовое имя файла журнала. Если файл журнала 
содержит какие-либо символы '%', он рассматривается как строка формата для
      strftime(3)  . В противном случае автоматически добавляется суффикс
 .nnnnnnnnnn , обозначающий время в секундах (если не используется параметр -t). Оба формата вычисляют время начала от начала текущего периода. Например, если указано время вращения 86400,     strftime(3)  все поля часа, минуты и секунды, созданные из формата, будут равны нулю, ссылаясь на начало текущего 24-часового периода (полночь). 
При использовании     strftime(3)  форматирования имени файла убедитесь, что формат файла журнала имеет достаточную степень детализации, чтобы создавать разные имена файлов при каждой ротации журналов. В противном случае ротация перезапишет тот же файл, а не запустит новый. Например, если файл журнала был
      /var/log/errorlog.%Y-%m-%d  с ротацией журнала на 5 мегабайт, но 5 мегабайт было достигнуто дважды в один и тот же день, будет создан файл журнала с одним и тем же именем, и ротация журнала продолжит запись в один и тот же файл. 
 
-   
   rotationtime    
- Время между ротациями файла журнала в секундах. Вращение происходит в начале этого интервала. Например, если время ротации равно 3600, файл журнала будет ротироваться в начале каждого часа; если время ротации равно 86400, файл журнала будет ротироваться каждую ночь в полночь. (Если в течение интервала данные не регистрируются, файл не создается.)
 
-   
   filesize(B|K|M|G)    
- За максимальным размером файла следует ровно одна из букв
   
   B  (байт),     K  (КБ),     M  (МБ) или     G  (ГБ).
Когда время и размер указаны, размер должен быть указан после времени. Ротация будет происходить всякий раз, когда будут достигнуты ограничения по времени или размеру.
 
 
-   
   offset    
- Количество минут, смещенное от UTC. Если опущено, предполагается ноль и используется UTC.  
   -300  Например, чтобы использовать местное время в зоне UTC -5 часов, укажите для этого аргумента значение . В большинстве случаев     -l  следует использовать вместо указания смещения. 
 
 
Примеры
      
 CustomLog "|bin/rotatelogs /var/log/logfile 86400" common
    
 Это создает файлы /var/log/logfile.nnnn, где nnnn — это системное время, в которое номинально запускается журнал (это время всегда будет кратно времени ротации, поэтому вы можете синхронизировать cron-скрипты с ним). В конце каждого времени ротации (здесь через 24 часа) запускается новый журнал. 
      
 CustomLog "|bin/rotatelogs -l /var/log/logfile.%Y.%m.%d 86400" common
    
 Это создает файлы /var/log/logfile.yyyy.mm.dd, где yyyy — год, mm — месяц, а dd — день месяца. Ведение журнала будет переключаться на новый файл каждый день в полночь по местному времени. 
      
 CustomLog "|bin/rotatelogs /var/log/logfile 5M" common
    
 Эта конфигурация будет чередовать файл журнала всякий раз, когда он достигает размера 5 мегабайт. 
      
 ErrorLog "|bin/rotatelogs /var/log/errorlog.%Y-%m-%d-%H_%M_%S 5M"
    
 Эта конфигурация будет чередовать файл журнала ошибок всякий раз, когда он достигает размера 5 мегабайт, а суффикс имени файла журнала будет создаваться в форме
      errorlog.YYYY-mm-dd-HH_MM_SS  . 
      
 CustomLog "|bin/rotatelogs -t /var/log/logfile 86400" common
    
 Это создает файл /var/log/logfile, усекая файл при запуске, а затем усекая файл один раз в день. В этом сценарии ожидается, что отдельный процесс (например, tail) будет обрабатывать файл в режиме реального времени. 
 
Портативность
Следующие подстановки строк в формате файла журнала должны поддерживаться всеми     strftime(3)  реализациями, см.     strftime(3)  справочную страницу для расширений для конкретных библиотек. 
     %A    | полное название дня недели (локализованное) |  
     %a    | 3-символьное название дня недели (локализованное) |  
     %B    | полное название месяца (локализованное) |  
     %b    | 3-символьное название месяца (локализованное) |  
     %c    | дата и время (локализовано) |  
     %d    | 2-значный день месяца |  
     %H    | 2-значный час (24-часовые часы) |  
     %I    | 2-значный час (12-часовые часы) |  
     %j    | 3-значный день года |  
     %M    | 2-значная минута |  
     %m    | 2-значный месяц |  
     %p    | am/pm в 12-часовом формате (локализовано) |  
     %S    | 2-значная секунда |  
     %U    | 2-значная неделя года (воскресенье первый день недели) |  
     %W    | Двузначная неделя года (понедельник, первый день недели) |  
     %w    | 1-значный день недели (воскресенье первый день недели) |  
     %X    | время (локализованное) |  
     %x    | дата (локализовано) |  
     %Y    | 4-значный год |  
     %y    | 2-значный год |  
     %Z    | название часового пояса |  
     %%    | литерал `%' |  
 
  | 
     |