Eu adicionei dois scripts no diretório "logrotate.d" para os logs do meu aplicativo serem rotacionados.
Esta é a configuração de um deles:
<myLogFilePath> {
compress
copytruncate
delaycompress
dateext
missingok
notifempty
daily
rotate 30
}
Existe um script "logrotate" no diretório "cron.daily" (que parece rodar diariamente conforme os registros do cron):
#!/bin/sh
echo "logrotate_test" >>/tmp/logrotate_test
#/usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1
/usr/sbin/logrotate -v /etc/logrotate.conf &>>/root/logrotate_error
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
A primeira instrução echo está funcionando.
Mas eu acho que os logs do meu aplicativo não estão sendo rotacionados, enquanto outros logs como o httpd estão sendo rotacionados **
** E eu também não vejo nenhuma saída no mencionado arquivo "logrotate_error" (tem permissão de gravação para todos os usuários).
No entanto, o syslog diz: "logrotate: o ALERT saiu anormalmente com [1]"
Mas quando eu executo o mesmo "logrotate" no script "cron.daily" manualmente, tudo parece estar funcionando bem.
Por que não está girando durante a programação diária de cron? Estou fazendo algo errado aqui?
Seria ótimo se eu recebesse essa ajuda tão necessária.
ATUALIZADO:
Parece que é por causa do selinux - os arquivos de log no diretório inicial do meu usuário possuem restrições impostas pelo selinux e o script quando o logrotate é executado:
SELinux is preventing /usr/sbin/logrotate from getattr access on the file /home/user/logs/application.log