У меня есть несколько экземпляров ec2, на которых запущены веб-службы; каждый час я хочу копировать логи обратно на S3. Что отлично работает.
Но это появляется, если я перемещаю журналы, а затем касаюсь нового файла или просто записываю содержимое в 0, Apache прекращает запись журналов с этого момента.
Как лучше всего это сделать?
Доступ к файлам журнала осуществляется через их файловый дескриптор (inode), а не через их имя.
Для безопасной ротации журналов apache необходимо повторно создать файл журнала, а затем перезапустить apache.
Большинство дистрибутивов поставляются с предварительно сконфигурированными настройками apache logrotate; взгляните на них.
Обычно скрипты logrotate выдают reload
(Отправить SIGHUP
) в запущенный процесс после выполнения ротации журнала и создания нового файла журнала. Это позволяет запущенному процессу (в вашем случае apache) повторно открыть файл журнала и продолжить запись журналов в нужный дескриптор файла.