Por que o logrotate não é girado automaticamente?

1

Eu configurei você para rodar diariamente, mas você não faz isso.

Mas quando faço isso manualmente, funciona.

logrotate -vf /etc/logrotate.conf

Este é o meu arquivo de log para girar. / mylogs / log (-rwxrwxrwxrwx 1 admin admin)

Esta é a configuração do sistema.

/etc/logrotate.conf (-rw-r--r-- 1 root root) :

/mylogs/log {
create 0640 root utmp
missingok
daily
copytruncate
rotate 10
dateext
}

/etc/logrotate.d/syslog (-rw-r--r-- 1 root root) :

/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
missingok
sharedscripts
postrotate
/bin/kill -HUP 'cat /var/run/syslogd.pid 2> /dev/null' 2> /dev/null || 
true
endscript
}

/etc/cron.daily/logrotate (-rwx------ 1 root root) :

#!/bin/sh

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

/etc/crontab (-rw-r--r--. 1 root root) :

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR 
sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

Informações adicionais. Sistema operacional CentOS

Como posso fazer isso girar corretamente?

UPDATE

Eu acho que o problema está em atribuir proprietário, grupo e permissões de 3 coisas. A pasta / mylogs / (raiz raiz) O arquivo / mylogs / log (admin admin)
A opção de criação de logrotate.conf (criar 0640 root utmp)

Alguém com logrotate funcionando corretamente. Por favor, deixe-me saber como você atribuiu os 3 valores anteriores. a pasta - o arquivo - o create config no logrotate.conf

    
por xav 26.11.2017 / 14:23

2 respostas

0

depois de vários testes, consegui girar corretamente novamente.

Para fazer isso, eu atribuí o usuário (root) e o grupo (root) do arquivo de log.

Altere também suas permissões para 666.

Em relação à pasta que contém o arquivo, é atribuído a um usuário (root) permissões de grupo (raiz) e 755.

Finalmente dentro da configuração do logrotate.conf a configuração atribuída a esta propriedade 'create' foi user (root), group (utmp) e permissões (644)

Espero que esta informação seja útil no caso de alguém ter um problema semelhante.

Saudações e obrigado.

    
por 29.11.2017 / 12:58
0

Junte-se a duas sequências aqui

/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status 
/etc/logrotate.conf

Para uma string como esta:

/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf

Ou coloque a barra invertida após a primeira string, assim:

/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status \
/etc/logrotate.conf

p.s. existe uma excelente opção -x para /bin/sh para fazer a saída de depuração a partir do shell, e eu acho que você poderá encontrar esse tipo errado da próxima vez se você tentar executar /bin/sh -x /etc/cron.daily/logrotate

    
por 26.11.2017 / 16:03

Tags