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 / emote / где 86400"
или
Transferlog "| / opt / httpd / bin / rotateLogs / emote / Где 5m"
на httpd.conf. Сгенерированное имя будет /some/where.nnnn где nnnn это системное время, на котором начинается журнал номинально (N.B. Если использовать Время вращения, время всегда будет многократное вращение Время, так что вы можете синхронизировать скрипты CRON с ним). В конце каждого Время вращения или когда размер файла достигнут, запущен новый журнал. / #
Решение
Согласно этому разделу Ручная страница для 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) обычно используются для этого.