Eu configurei você para rodar diariamente, mas você não.
Mas quando eu 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ção adicional. Sistema operacional CentOS
Como posso fazê-lo girar corretamente.
ATUALIZAR
Acho que o problema está em atribuir proprietário, grupo e permissões de 3 coisas. A pasta /mylogs/ (root root) O arquivo /mylogs/log (admin admin)
A opção create de logrotate.conf (criar 0640 root utmp)
Alguém com logrotate rodando corretamente. Por favor, deixe-me saber como você atribuiu os 3 valores anteriores. a pasta - o arquivo - a configuração de criação em logrotate.conf
Junte duas strings aqui
Para uma string como esta:
Ou coloque a barra invertida após a primeira string, assim:
ps, há uma excelente opção
-x
para/bin/sh
fazer a saída de depuração do shell, e acho que você poderá encontrar esse erro de digitação na próxima vez se tentar executar/bin/sh -x /etc/cron.daily/logrotate
depois de vários testes consegui que voltasse a rodar corretamente.
Para fazer isso, atribuí o usuário (root) e o grupo (root) do arquivo de log.
Também altere suas permissões para 666.
Em relação à pasta que contém o arquivo, é atribuído um usuário (root) de grupo (root) e 755 permissões.
Finalmente dentro da configuração do logrotate.conf a configuração atribuída a esta propriedade 'create' foi usuário (root), grupo (utmp) e permissões (644)
Espero que esta informação seja útil caso alguém tenha um problema semelhante.
Saudações e obrigado.