среда, 6 июня 2018 г.

Logrotate copytruncate binary options


A razão pela qual o apache precisa de um recarregamento é que, uma vez que abriu um arquivo, ele recebe uma tarefa de arquivo, e ele continuará escrevendo para esse arquivo de arquivo. Quando você move o arquivo, ele não vê isso, ele simplesmente continua escrevendo para o mesmo identificador. Quando você faz um recarregamento, ele abrirá o arquivo novamente e obterá um novo identificador. Para evitar a recarga, em vez de mover o arquivo, você pode copiá-lo e esvaziar o arquivo antigo. Dessa forma, o Apache pode continuar escrevendo para o mesmo arquivo de arquivo. Você faz isso adicionando a opção copytruncate ao arquivo de configuração logrotate, como este: respondeu 10 de setembro 12 em 9: 47Im trabalhando no Ubuntu 14 com o utilitário rsyslog e logrotate padrão. No padrão rsyslog logrotate etc logrotate. d rsyslog config Eu vejo o seguinte: Do que eu entendo, recomenda-se usar copytruncate em todos os cenários logrotate, pois ele não move o log atual, mas sim trunca o log para que qualquer processo com um O manipulador de arquivos abertos poderá continuar escrevendo para ele. Então, como é que a configuração padrão usando o recurso de recarregamento rsyslog, em vez disso, perguntou 5 de maio 15 às 7:40 Para responder sua pergunta, você precisa entender o trade-off diferente de recarregar e copiar: recarregar. O arquivo de registro antigo é renomeado e a escrita do processo nesse log é notificada (via sinal Unix) para recriar seu arquivo de log. Este é o método de sobrecarga mais rápido mais rápido: as operações de mudança de renome são muito rápidas e têm um tempo de execução constante. Além disso, é uma operação quase atômica: isso significa que (quase) nenhuma entrada de log será perdida durante o recarregamento do movimento. Por outro lado, você precisa de um processo capaz de recarregar e reabrir seu arquivo de log. Rsyslog é um processo assim, então o logrotate config padrão usa o método recarregar. Copiar. O arquivo de log antigo é copiado para um arquivo de arquivo e, em seguida, é truncado para excluir linhas de log antigas. Enquanto a operação truncada é muito rápida, a cópia pode ser bastante longa (dependendo de quão grande é seu arquivo de log). Além disso, algumas entradas de log podem ser perdidas durante o tempo entre a operação de cópia (lembre-se, pode ser lento) e truncar. Por estas razões, copytruncate não é usado por padrão para serviços capazes de recarregar e recriar seus arquivos de log. Por outro lado, se um servidor não for capaz de recarregar recriar arquivos de log, copytruncate é a sua aposta mais segura. Em outras palavras, não exige suporte a nível de serviço. Respondeu 5 de maio às 7:50 I39m limitando meus arquivos de log a 500M cada, então copiá-los não é um problema (vários segundos no máximo). Obrigado ndash Mattan 5 de maio 15 às 7:57 Isso depende completamente de como o processo está escrevendo logs. O copytruncate funciona apenas, se as mensagens de log forem anexadas ao arquivo (por exemplo, qualquer arquivo de log gtgt. E não quando é redirecionar a saída (por exemplo, qualquer arquivo log gt).

Комментариев нет:

Отправить комментарий