É possível executar uma iteração do logrotate manualmente sem agendá-lo em algum intervalo?
É possível executar uma iteração do logrotate manualmente sem agendá-lo em algum intervalo?
Respostas:
Sim: logrotate --force $CONFIG_FILE
--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 que logrotate -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 havia File 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.
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:
logrotate -df /etc/logrotate.d/nginx
Então você pode executar (usando o nginx como exemplo):
logrotate -f /etc/logrotate.d/nginx
E os logs nginx sozinhos serão girados.
logrotate -d /etc/logrotate.conf
será executado em qualquer outro arquivo conf incluído.
A maneira de executar todo o logrotate é:
logrotate -f /etc/logrotate.conf
que executará o arquivo de logrotate primário, que inclui as outras configurações de logrotate
Emita o seguinte comando, a maneira de executar o logrotate especificado:
logrotate -vf /etc/logrotate.d/custom
Opções:
-v: mostra o processo
-f: forçando execução
customizado: configuração de log definida pelo usuário
por exemplo: mongodb-log
# mongodb-log rotate
/data/var/log/mongodb/mongod.log {
daily
dateext
rotate 30
copytruncate
missingok
}
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.
/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...
logrotate_one -d syslog