Como fazer a alteração da rotação do log entrar em vigor

99

Eu segui este link para alterar a configuração de rotação do log do RHEL 6

Depois de fazer a alteração no arquivo de configuração, o que devo fazer para que isso entre em vigor?

BufBills
fonte

Respostas:

139

logrotatecostuma crontabtrabalhar. É um trabalho agendado, não um daemon, portanto, não é necessário recarregar sua configuração.
Quando crontabexecutado logrotate, ele usará seu novo arquivo de configuração automaticamente.
Se você precisar testar sua configuração, também poderá executar logrotatepor conta própria com o comando:

logrotate /etc/logrotate.d/your-logrotate-config

Ou, como mencionado nos comentários, identifique a logrotatelinha na saída do comando crontab -le execute a linha de comando. Consulte a resposta do slm para obter uma explicação cron.daily precisa

Kiwy
fonte
1
Apenas para adicionar à sua resposta, a entrada cron logrotateestá programada para ser executada uma vez por dia.
Mkc
@ Ketan, então, como posso fazer isso afetar imediatamente? obrigado
BufBills
Não tenho certeza. Uma possibilidade é encontrar a entrada correspondente do crontab via crontab -le executá-la.
Mkc
2
Se você quiser que ele entre em vigor, execute imediatamente o pós-cron.
slm
2
logrotatetiver uma -dopção para testar (ou "depurar"), recomendo executá-lo pelo menos uma vez com isso.
FrustratedWithFormsDesigner
36

A maioria das logrotateconfigurações que eu já vi em várias distros acaba /etc/cron.daily. Há um script de shell lá apropriadamente chamado logrotate.

Exemplo

$ ls -l /etc/cron.daily/logrotate 
-rwxr-xr-x 1 root root 180 May 18  2011 /etc/cron.daily/logrotate

Execução manual

Se você deseja fazê-lo executar manualmente, basta executar o script como root:

$ sudo /etc/cron.daily/logrotate

Se você der uma olhada em um script que normalmente está lá, ele mostra como você também pode executar logrotatemanualmente, simplesmente executando logrotate+ o caminho para seu arquivo de configuração.

#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
slm
fonte
31

Deve ser automático via cron. Você pode forçá-lo a testar suas alterações.

Para logrotate global:

sudo logrotate -v -f /etc/logrotate.conf

Para um único arquivo conf:

sudo logrotate -v -f /etc/logrotate.d/someapp.conf
maskeda
fonte
11
-fpara rotação de força, também existe -ddepuração, que também é executada a seco, imprime tudo o que teria feito, mas na verdade não é.
22416 ThorSummoner
5

Na minha máquina CentOS 6.5 para configurar a rotação de log para o nginx, tive que fazer o seguinte:

logrotate /etc/logrotate.d/nginx

E então eu verifiquei se o logrotate cuidava da minha nova configuração do nginx assim:

cat /var/lib/logrotate.status
Raptor
fonte