[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Duda con logrotate



El 2013-04-23 13:48, fernando sainz escribió:
2013/4/23  <maykel@maykel.sytes.net>:
El 2013-04-23 12:23, fernando sainz escribió:

El día 23 de abril de 2013 12:02, fernando sainz
<fernandojose.sainz@gmail.com> escribió:

El día 23 de abril de 2013 11:40, <maykel@maykel.sytes.net> escribió:

El 2013-04-23 11:27, fernando sainz escribió:

2013/4/23  <maykel@maykel.sytes.net>:


Hola muy buenas, tengo configurado logrotate para que vaya rotando los
logs
de apache. Mi problema es que me gustaría que comprimira también el
archivo
access.log.1. He mirado un poco su man y ejemplos, y he modificado a /etc/logrotate.d/apache2 la linea delaycompress por nodelaycompress,
de
esta
forma no se retrasa la compresión para la siguiente rotación pero aún
así,
lo he lanzado manualmente(ya que es cron quien lo lanza):

logrotate --debug --force /etc/logrotate.d/apache2


No entiendo muy bien el porqué de que quieras hacer eso, ¿es por falta
de espacio?
Pues cambia el numero de copias que guarda:
rotate 52
y pon alguna menos.

S2.




Gracias por contestar. No es que sea problema de espacio, simplemente
quiero
que zipee directamente el primer log rotado a .log.1. Son grandes y
quiero
zipearlos.

Con esta linea en postrotate, me soluciona el apaño:

gzip *.log.1

Saludos y gracias.



Supongo que habrás mirado las opciones:
delaycompress
nodelaycompress


       delaycompress
Postpone compression of the previous log file to the next
rota‐
tion cycle. This only has effect when used in combination
with
compress. It can be used when some program cannot be told
to
close its logfile and thus might continue writing to the
previ‐
              ous log file for some time.

       nodelaycompress
Do not postpone compression of the previous log file to the
next
rotation cycle (this overrides the delaycompress option).




Pero ojo, si en el logrotate de apache han puesto el delaycompress es
por que tal vez lo necesita.

S2.


Buscando un poco encontré esto:



http://articles.slicehost.com/2010/6/30/understanding-logrotate-on-debian-part-1

delaycompress

This command can be useful if you want the archived logs to be
compressed, but not right away. With "delaycompress" active an
archived log won't be compressed until the next time the log is
rotated. This can be important when you have a program that might
still write to its old logfile for a time after a fresh one is rotated in. Note that "delaycompress" only works if you also have "compress"
in your config.

An example of a good time to use delaycompress would be when logrotate is told to restart apache with the "graceful" or "reload" directive. Since old apache processes would not be killed until their connections are finished, they could potentially try to log more items to the old file for some time after the restart. Delaying the compression ensures that you won't lose those extra log entries when the logs are rotated.

Como ves, parece que es necesario y que si comprimieras el fichero
podrías perder información.

S2.



Gracias por contestar. Estoy de acuerdo, es necesario pero metiéndolo después de la ejecución de postrotate no debería dar problemas, para eso
está el postrotate, una vez que ha acabado...zipea:

postrotate
        /etc/rc.d/init.d/httpd closelogs > /dev/null 2>&1 || :
        gzip *.log.1
    endscript


Saludos.




No he profundizado mucho en el proceso, en mi caso el postrotate que
tiene la configuración del logrotate es otra:

       postrotate
                /etc/init.d/apache2 reload > /dev/null

En el caso de que el script de init.d solo mandara una señal a los
procesos, que no se lo que hace, estos podrían tardar en parar y
perderías logs.

S2.


Lo he probado metiendo tráfico y no he perdido ni un sólo logs. Porque cuando va a zipear el *.log.1 , ya ha acabado de realizar las rotaciones. Es decir, cuando está zipeando, ya están entrando las peticiones a access.log por ejemplo o error.log.

Saludos.


Reply to: