Apache httpd rotatelogs: возможно ли создавать новый файл каждый день?
Я хочу делать новые журналы для моего сайта каждые 00:00:01 (= каждый новый день).
Проблема с rotatelogs заключается в том, что вы можете либо уточнить максимальный размер бревен перед созданием нового, либо уточнить время вращения в секундах. Невозможно уточнить час вращения.
Они говорят о "cronjobs", но я не понимаю. Может кто-нибудь объяснить, если это возможно, и если да, привести пример?
большое спасибо
Ниже приводится помощь rotatelogs
полезность:
/ # / opt / httpd / bin / rotatelogs --help Неверное количество аргументов Использование: /opt/httpd/bin/rotatelogs [-l] [-f] {|} [смещение минут от UTC]
Добавь это:
TransferLog "| / opt / httpd / bin / rotatelogs / some / where 86400"
или же
TransferLog "|/opt/httpd/bin/rotatelogs /some/where 5M"
на httpd.conf. Сгенерированное имя будет /some/where.nnnn, где nnnn - системное время, в которое номинально начинается журнал (примечание: если используется время ротации, время всегда будет кратно времени ротации, поэтому вы можете синхронизировать скрипты cron с Это). В конце каждого времени ротации или при достижении размера файла запускается новый журнал. / #
1 ответ
Согласно этому разделу страницы руководства для rotatelogs:
rotationtime The time between log file rotations in seconds. The rotation occurs at the beginning of this interval. For example, if the rotation time is 3600, the log file will be rotated at the beginning of every hour; if the rotation time is 86400, the log file will be rotated every night at midnight.
установка 86400 в качестве периода будет делать то, что вы хотите (новый файл запускается в полночь каждый день).
Также используйте опцию -l, если вы хотите, чтобы "полночь" была в вашем местном часовом поясе, а не в UTC.
Случай, когда понадобится cronjob, - это если вы хотите иметь период в один день, но в другое время, чем полночь. Для этого обычно используются более общие инструменты, такие как logrotate (вне apache).