Назад | Перейти на главную страницу

Apache перестает писать журналы после их перемещения / удаления

У меня есть несколько экземпляров ec2, на которых запущены веб-службы; каждый час я хочу копировать логи обратно на S3. Что отлично работает.

Но это появляется, если я перемещаю журналы, а затем касаюсь нового файла или просто записываю содержимое в 0, Apache прекращает запись журналов с этого момента.

Как лучше всего это сделать?

Доступ к файлам журнала осуществляется через их файловый дескриптор (inode), а не через их имя.

Для безопасной ротации журналов apache необходимо повторно создать файл журнала, а затем перезапустить apache.

Большинство дистрибутивов поставляются с предварительно сконфигурированными настройками apache logrotate; взгляните на них.

Обычно скрипты logrotate выдают reload (Отправить SIGHUP) в запущенный процесс после выполнения ротации журнала и создания нового файла журнала. Это позволяет запущенному процессу (в вашем случае apache) повторно открыть файл журнала и продолжить запись журналов в нужный дескриптор файла.