Faça a rotação do log diário no tempo exato

0

Eu tenho o servidor LTS do Ubuntu 12.04.2.

Minhas rotações de log diárias que estão listadas em /etc/logrotate.d/ são executadas na manhã por volta das 7:00 da manhã, mas não no horário exato, cada dia ela é alterada no intervalo de (07:00 - 07 : 25), Como posso evitar a execução aleatória da rotação de log?

Conteúdo do arquivo

/ etc / crontab:

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

\# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
0 7     * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

/etc/cron.daily/logrotate content:

\#!/bin/sh

\# Clean non existent log file entries from status file
cd /var/lib/logrotate
test -e status || touch status
head -1 status > status.clean
sed 's/"//g' status | while read logfile date
do
      [ -e "$logfile" ] && echo "\"$logfile\" $date"
done >> status.clean
mv status.clean status

test -x /usr/sbin/logrotate || exit 0
/usr/sbin/logrotate /etc/logrotate.conf

Tópico relacionado: Especifique o tempo de rotação do log diário

    
por Khaled Zoabi 24.09.2013 / 09:24

1 resposta

0

A pasta /etc/cron.daily contém dezenas de itens (17 itens na minha caixa), e não é garantido que o logrotate rode primeiro.

Então, se você quiser que o logrotate seja executado exatamente na mesma hora todos os dias, faça-o como uma única entrada no crontab, como no tópico Relacionado: Especifique o tempo de rotação do log diário

    
por Ben Lin 12.05.2014 / 18:19