Puse un logrotate
archivo de configuración /etc/logrotate.d/
y esperaba que los registros giraran en un momento constante; sin embargo, no ... registran tiempos de rotación aparentemente aleatorios +/- una hora.
¿Por qué los tiempos de inicio de rotación de registros son aleatorios y cómo puedo cambiar esto?
Informativo: mi archivo de configuración logrotate se ve así ...
/opt/backups/network/*.conf {
copytruncate
rotate 30
daily
create 644 root root
dateext
maxage 30
missingok
notifempty
compress
delaycompress
postrotate
## Create symbolic links in daily/
PATH=`/usr/bin/dirname $1`;
FILE=`/bin/basename $1`;
/bin/ln -s $1 $PATH/daily/$FILE
endscript
}
No es la respuesta, pero recientemente estaba tratando de resolver esto por otra razón y no pude encontrar ninguna documentación sobre cómo Redhat 6, Centos, etc. ejecutan cron. Esto es lo que realicé en ingeniería inversa:
crond
todavía se ejecuta al inicio del sistema: carga todos los archivos en/etc/cron.d
/etc/cron.d/0hourly
ejecuta todos los archivos en/etc/cron.hourly
/etc/cron.hourly/0anacron
carrerasanacron
/etc/anacrontab
/etc/anacrontab
carreras (a travésrun-parts
)/etc/cron.daily
,/etc/cron.weekly
y/etc/cron.monthly
Por lo tanto, es más complicado que en versiones anteriores.
Es posible restaurar el comportamiento anterior agregando las entradas por hora, semanales y mensuales nuevamente
/etc/crontab
(que ahora está vacío), peroanacrontab
también deberá actualizarse. Esto puede o no romper futuras actualizaciones ...fuente
Otras respuestas cubren cómo pero no necesariamente por qué . La razón es evitar que los trabajos cron simultáneos nocturnos maten su infraestructura. (Imagine almacenamiento compartido, o quizás 1000 servidores que se ejecutan en un host VM, o solo trabajos nocturnos que afectan a algún servicio en red).
Siempre resuelvo este problema para la rotación de registros específica en mis sistemas moviendo el trabajo de rotación de registros específico de
cron.daily
una entrada con un tiempo codificadocron.d
. De esa manera, aún obtienes las ejecuciones escalonadas para servicios como updatedb donde el tiempo realmente no es esencial, sino tiempos consistentes para la rotación de registros.Por supuesto, cuando llegue a un cierto tamaño, querrá que todos sus registros se envíen del host a un servidor de registros de todos modos, y luego el tiempo de rotación de los archivos en los nodos individuales es menos importante, ya que esos son solo para conveniencia (generalmente siguiendo la cola del archivo) o como recurso de último recurso. Entonces, definitivamente establecería la rotación en su servidor de registro para que sea sistemática.
fuente