O problema com o logrotate é que ele possui um arquivo de configuração global e NÃO permite executar um único arquivo de subconfiguração de rotação de log enquanto ainda aplica as opções definidas no arquivo de configuração global. Ou seja, ele não tem uma boa maneira de executar apenas UMA verificação de arquivo de rotação de log, exatamente como faria quando executada todas as noites a partir do cron. Pode ser uma opção "limite para esses arquivos de log", ou melhor ainda, "executar a configuração global, mas incluir apenas esse arquivo de subconfiguração".
nota que --forcevai rodar arquivo (s) mesmo se eles não atendem aos critérios especificados como minsize, idade, etc.
xofer
4
Se você colocar o arquivo de configuração logrotate em /etc/logrotate.d/custom.conf, isso significa que você não precisa especificar um tamanho / hora em que o log deve girar automaticamente? Ou você deve colocar a configuração em uma pasta diferente se não pretender fazê-la girar automaticamente?
Damainman 07/08
18
O critério "notifempty" não é ignorado por "--force". Isso me surpreendeu por um tempo, então mencionei isso como uma exceção à instrução @xofer.
Thelogix 29/09/2015
16
Você pode simplesmente girar todos com logrotate --force /etc/logrotate.d/(apenas nome do diretório) #
fcm 26/02
1
É verdade que --forceforçará a rotação mesmo que os arquivos não atendam aos critérios (idade, tamanho etc.), mas considere que essa é a única maneira de identificar problemas reais que logrotate -dnão surgiriam (por exemplo, eu tinha um servidor ficando sem espaço devido a não logrotate funcionando por meses ... e graças a --forceeu descobri que havia File exists. erros I excluído manualmente esses arquivos e agora rotação corretamente funciona novamente!
lucaferrario
559
logrotate -d [your_config_file] chama o modo de depuração, fornecendo uma descrição detalhada do que aconteceria, mas deixando os arquivos de log intocados.
aqueles que vieram aqui procurando a resposta de uma pergunta como "como posso testar meu logrotate conf?" pode levar um presente como uma resposta, uma vez que apenas testa a conf
kommradHomer
não se atrapalhou com a sua abordagem, tentei logrotate --forcee funciona bem.
Benyamin Jafari
122
Se você deseja forçar a execução de um único diretório específico ou dos arquivos de log do daemon, geralmente é possível encontrar a configuração /etc/logrotate.de eles funcionarão autônomos.
Lembre-se de que a configuração global especificada em /etc/logrotate.confnão se aplicará; portanto, se você fizer isso, deverá especificar todas as opções desejadas /etc/logrotate.d/[servicename]especificamente no arquivo de configuração.
Você pode experimentá-lo -dpara ver o que aconteceria:
logrotate -df /etc/logrotate.d/nginx
Então você pode executar (usando o nginx como exemplo):
Isso é bom, mas você perde as configurações globais existentes no "/etc/logrotate.conf". Eu escrevi um script para mesclar os arquivos de rotação global e específicos e depois usá-lo para resolver esse problema. (veja minha resposta).
Anthony
O uso também logrotate -d /etc/logrotate.confserá executado em qualquer outro arquivo conf incluído.
21419 wmassingham
61
Você pode querer executá-lo no modo detalhado + forçar.
Este script executará apenas o único arquivo de subconfiguração de logrotate encontrado em "/etc/logrotate.d", mas incluirá as configurações globais no arquivo de configuração global "/etc/logrotate.conf". Você também pode usar outras opções para testá-lo ...
Respostas:
Sim:
logrotate --force $CONFIG_FILE
fonte
--force
vai rodar arquivo (s) mesmo se eles não atendem aos critérios especificados como minsize, idade, etc.logrotate --force /etc/logrotate.d/
(apenas nome do diretório) #--force
forçará a rotação mesmo que os arquivos não atendam aos critérios (idade, tamanho etc.), mas considere que essa é a única maneira de identificar problemas reais quelogrotate -d
não surgiriam (por exemplo, eu tinha um servidor ficando sem espaço devido a não logrotate funcionando por meses ... e graças a--force
eu descobri que haviaFile exists
. erros I excluído manualmente esses arquivos e agora rotação corretamente funciona novamente!logrotate -d [your_config_file]
chama o modo de depuração, fornecendo uma descrição detalhada do que aconteceria, mas deixando os arquivos de log intocados.fonte
logrotate --force
e funciona bem.Se você deseja forçar a execução de um único diretório específico ou dos arquivos de log do daemon, geralmente é possível encontrar a configuração
/etc/logrotate.d
e eles funcionarão autônomos.Lembre-se de que a configuração global especificada em
/etc/logrotate.conf
não se aplicará; portanto, se você fizer isso, deverá especificar todas as opções desejadas/etc/logrotate.d/[servicename]
especificamente no arquivo de configuração.Você pode experimentá-lo
-d
para ver o que aconteceria:Então você pode executar (usando o nginx como exemplo):
E os logs nginx sozinhos serão girados.
fonte
logrotate -d /etc/logrotate.conf
será executado em qualquer outro arquivo conf incluído.Você pode querer executá-lo no modo detalhado + forçar.
logrotate -vf /etc/logrotate.conf
fonte
A maneira de executar todo o logrotate é:
que executará o arquivo de logrotate primário, que inclui as outras configurações de logrotate
fonte
Emita o seguinte comando, a maneira de executar o logrotate especificado:
Opções:
-v: mostra o processo
-f: forçando execução
customizado: configuração de log definida pelo usuário
por exemplo: mongodb-log
fonte
edite /var/lib/logrotate.status para redefinir a data da 'última rotação' no arquivo de log que você deseja testar.
Então corra
logrotate YOUR_CONFIG_FILE
.Ou você pode usar o sinalizador --force, mas a edição de logrotate.status fornece mais precisão sobre o que faz e o que não é rotacionado.
fonte
/var/lib/logrotate.status
arquivo não existe no Debian Squeeze.Criou um script de shell para resolver o problema.
http://www.ict.griffith.edu.au/anthony/software/#logrotate_one
Este script executará apenas o único arquivo de subconfiguração de logrotate encontrado em "/etc/logrotate.d", mas incluirá as configurações globais no arquivo de configuração global "/etc/logrotate.conf". Você também pode usar outras opções para testá-lo ...
Por exemplo...
fonte