Как работает logrotate?

Что именно делает logrotate при «ротации» файла журнала? Например, переименовывает ли он существующий файл и создает новый со старым именем?

В этой статье описывается перезапуск службы после ротации журналов, чтобы она могла использовать новый файл журнала. Это только потому, что процесс может сохранить открытый дескриптор старого файла? Если мой процесс открывает новый дескриптор файла каждый раз, когда он записывает в журнал, будет ли он использовать новый файл журнала без перезапуска?

0
задан 12 October 2021 в 16:24
1 ответ

После прочтения ответа на этот вопрос(Используйте «включить» в блоке сервера nginx, но где сохранить?), я понял, что могу выделить свои местоположения модульным образом с помощью включаемых файлов:

server {
    listen              443 ssl;
    ssl_certificate     /etc/letsencrypt/live/this_host/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/this_host/privkey.pem;
    server_name https;

    # Proper rotation of session ticket encryption keys are not implemented, so
    # disable session tickets entirely
    ssl_session_tickets off;

    # Given that anticipated client devices are relatively modern, no need to
    # support insecure protocols
    ssl_protocols TLSv1.3;
    ssl_prefer_server_ciphers off;

    include /etc/nginx/includes/*.location;
}

И тогда разные местоположения могут быть добавлены по одному-на-я-файл-документации-.

-121---500721 ​​-

Если не используется copytruncate, каждый раз, когда журнал переименовывается в новое имя (, например, log.0 ), а затем создается пустой файл. postrotateиспользуется для уведомления процесса-владельца о необходимости повторного открытия журнала.

Если процесс тупой и не может повторно открыть свои журналы через сигнал, то следует использовать copytruncate-в этом случае содержимое файла журнала копируется вместо переименования, а затем журнал просто усекается.

Если процесс повторно открывает журналы для каждой записи (, то после этого он должен закрывать журнал, в противном случае дескрипторы открытых файлов будут накапливаться, если они не будут исчерпаны до предела ОС/пользователя), тогда вы можете опустить процесс-владелец уведомление. Но это редкий случай, потому что такой подход ставит под угрозу производительность записи логов, когда в логи постоянно записывается много информации.

0
ответ дан 12 October 2021 в 17:13

Теги

Похожие вопросы