logrotate no SUSE Enterprise Server

1

Não consigo trabalhar este arquivo de configuração fictício (coloquei em etc / logrotate.d):

/var/log/test_log/mylogfile {
copytruncate
dateext
rotate 3
compress
missingok
size=+2
}

Eu escrevo no log (echo "olá mundo" > / var / log / test_log / mylogfile) mas simplesmente não está funcionando.

Fazendo cat / etc / crontab mostra:

# check scripts in cron.hourly, cron.daily, cron.weekly, and cron.monthly
#
-*/15 * * * *   root  test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons >/dev/null 2>&1

Mais tarde, redirecionei a saída para:

-*/15 * * * *   root  test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons > /var/log/test_log/log_logrotate

Mas nada aconteceu.

Devo adicionar outra linha no etc / crontab para forçar o cron.dayly a acontecer como no Ubuntu:

25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

ou o problema pode estar no arquivo / usr / lib / cron / run-crons ??

Estou sob o SUSE Linux Enterprise Server 11 SP2

    
por gugol 12.02.2015 / 14:40

2 respostas

1

Acho que encontrei uma resposta para minha pergunta. O problema foi complicado porque " as novas versões Cron do Linux podem ser executadas de forma diferente das versões anteriores " para o que eu estava acostumado.

Parece que agora o Cron consiste no script usr / lib / cron / run-crons, que verifica se cron.dayly em / var / spool / cron / lastrun / é mais antigo que um dia (por padrão verifica se está mais do que ou exatamente 1440 minutos desde o lastrun). Ou, se quisermos que o cron.dayly seja executado em um horário fixo, devemos definir a variável DAILY_TIME no arquivo / etc / sysconfig / cron para um horário (ex: "12:00") e ele será executado naquele momento. tempo por dia (dentro de 15 minutos).

Nota (a partir dos comentários / etc / sysconfig / cron): Devido ao facto de o script cron ser executado apenas a cada 15 minutos, apenas será executado em xx: 00, xx: 15, xx: 30, xx: 45, não no momento exato que você definiu.

Encontrei a resposta aqui :

    
por 12.02.2015 / 17:45
0

logrotate é executado quando o período de tempo é dado weekly , daily e assim por diante, ou no caso de tamanho quando o tamanho do arquivo exsuda o tamanho dado.

Basta colocar size=2 , em vez de size=+2 , e isso deve funcionar.

size size

Log files are rotated when they grow bigger then size bytes. If size is followed by M, the size if assumed to be in megabytes. If the k is used, the size is in kilobytes. So size 100, size 100k, and size 100M are all valid.

    
por 12.02.2015 / 16:06