¿Por qué logrotate no gira automáticamente?

¿Por qué logrotate no gira automáticamente?

Te he configurado para que rotes diariamente, pero no lo haces.

Pero cuando lo hago manualmente, funciona.

logrotate -vf /etc/logrotate.conf

Este es mi archivo de registro para rotar. /mylogs/log (-rwxrwxrwxrwx 1 administrador administrador)

Esta es la configuración del 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

Información adicional. sistema operativo centos

¿Cómo puedo hacer que gire correctamente?


ACTUALIZAR

Creo que el problema está en asignar propietario, grupo y permisos de 3 cosas. La carpeta /mylogs/ (raíz) El archivo /mylogs/log (admin admin)
La opción de creación de logrotate.conf (crear 0640 root utmp)

Alguien con logrotate ejecutándose correctamente. Déjame saber cómo has asignado los 3 valores anteriores. la carpeta - el archivo - la configuración de creación en logrotate.conf

Respuesta1

Une dos hilos aquí

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

A una cadena como esta:

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

O coloque una barra invertida después de la primera cadena, así:

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

PD: hay una excelente opción -xpara /bin/shgenerar resultados de depuración desde el shell, y supongo que podrás encontrar este tipo de error la próxima vez si intentas ejecutar/bin/sh -x /etc/cron.daily/logrotate

Respuesta2

Después de varias pruebas logré que volviera a girar correctamente.

Para hacer esto, asigné el usuario (raíz) y el grupo (raíz) del archivo de registro.

También cambie sus permisos a 666.

Con respecto a la carpeta que contiene el archivo, se le asigna un usuario (root) de grupo (root) y 755 permisos.

Finalmente dentro de la configuración de logrotate.conf la configuración asignada a esta propiedad 'create' fue usuario (root), grupo (utmp) y permisos (644)

Espero que esta información sea útil en caso de que alguien tenga un problema similar.

Saludos y gracias.

información relacionada