El Thu, 28 Jun 2012 15:29:25 +0200, Maykel Franco Hernández escribió:
Buenas tardes, tengo un servider web montado en un debian y quería
rotarlos diariamente cuando superen el tamaño de 1 GB. He puesto en
el
cron que se ejecute la tarea cada hora. El cron funciona
correctamente
el que falla es el logrotate.
Mmm, que yo sepa no tienes que tocar nada del cron, sólo el archivo
de
configuración del registro que quieres rotar con logrotate (recuerda
que
logrotate ya tiene su propia tarea definida en el "cron.daily").
Esta es la configuración que me falla:
/tmp/web-proxy.log {
rotate 365
daily
missingok
notifempty
compress
size 1024M
create 640 apache apache
}
A simple vista parece correcto :-?
Ése log crece muy rápido por unas pruebas que estoy haciendo y
porque el
nivel del log está puesto para que recoja todo. El problema es que
teniendo el log más de 1GB, el cron salta, ejecuta la instrucción de
logrotate pero no hace nada.
Ejecuta el logrotate manualmente con el parámetro -f (force) y -d
(modo
depuración) a ver qué te dice.
[root@server tmp]# du -hs *
32K 0410472063
40K 0518957361
32K 1365870157
1,2G web-proxy.log
Lanzo el modo debug de logrotate para que lo simule:
Eso, pero con --force :-)
[root@server tmp]# logrotate -d /etc/logrotate.d/web
reading config file /etc/logrotate.d/web
Handling 1 logs
rotating pattern: /tmp/alsa-proxy.log after 1 days (365 rotations)
^^^^^^^^^^^^^^ ^^^^^^^^^^^^
empty log files are not rotated, only log files >= 1073741824 bytes
are
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
(...)
Las dos variables que tiene que mirar las detecta correctamente.
¡Ah! Oye, hay una discrepancia en el nombre del archivo que tiene que
rotar:
web-proxy.log
alsa-proxy.log
?
Y esta es la tarea del cron:
0 * * * * /usr/sbin/logrotate /etc/logrotate.d/alsa
Esto creo que no es necesario.
Saludos,
--
Camaleón