[eside-ghost] logrotate - aviso: email largo
aktor
aktor en aktornet.ath.cx
Vie Mar 11 16:19:49 CET 2005
Aupa Alvaro!
Antes de nada, gracias por la respuesta y por tu tiempo ;-)
El Fri, 11 Mar 2005 13:58:50 +0100
Alvaro Uría escribió:
> > -a "todo" excepto la facility "news", ¿no?
> Eso es. Verás:
>
> La variable $opt_news vale 0 al principio. Si le pasas el parámetro
> "--news", cambia su valor a 1.
>
> Al parsear cada línea, hay una condición que igual has visto:
> parsear la siguiente (en definitiva, lo que tú decías: que "--all" es
> *todo* menos *news*, que lo gestiona otro paquete, dicho sea de paso,
> que se llama inn).
Si, yo lo decía por el "--all"
>>>
Usage: syslogd-listfiles <options>
Options: -f file specifies another syslog.conf file
-a | --all list all files (including news)
<<< ^^^^^^^^^^^^^^
Y luego resulta que no incluye la facility "news", xq se lo cargan con
la expresión:
>>>
next if (!$opt_news && ($pat =~ /news\.(\*|crit|err|info|notice)/));
^^^^^^^
<<<
> > Pero si lo rotas y lo gzipeas... en principio ya no se vuelve a
> > modificar, excepto para eliminarlo al haber alcanzado el número
> > máximo de históricos, ¿no? (y de eso se encarga el comando
> > 'savelog')
>
> Eso es.
>
> > De todas maneras, sigo sin entender las fechas de modificación
> > distintas en unos y otros archivos.
>
> ¿Porque no loguearon continuamente hasta el momento de la rotación?
Pero una vez que se han rotado la fecha de modificación se actualiza.
Por tanto deberían tener hora muy similar.
>
> > Tampoco entiendo por qué unos guardan 4
> > históticos, otros solo 2 y otros 7, cuando la rotación se hace
> > mediante el comando *para todos igual*:
> >
> > >>>
> > savelog -g adm -m 640 -u root -c 4 $LOG
> > <<<
>
> Si te fijas, en /etc/cron.weekly/sysklogd tienes un "-c 4" en el
> savelog, pero en /etc/cron.daily/sysklogd tienes un "-c 7" en el
> savelog.
Recopilando información
Rotaciones diarias
==================
- /var/log/syslog (al tener facility y priority *.*)
>>>
$everything = ($pat =~ /\*\.\*/);
($everything && $opt_daily)
>>>
- Todos aquellos logs con tamaño superior a 1MB [***]
>>>
(!$opt_ign_size && ((stat $file)[7] >= $opt_large) && $opt_daily)
<<<
Rotaciones semanales
====================
- Todos aquellos con una facility y priority distinta de *.* y cuyo log
no haya sido rotado en las ultimas 5 horas.
>>>
(!$everything && !$opt_daily && !rotated ($file))
<<<
¿no?
[***] este es el dato que me faltaba en la ecuación :-DDDD, ya que
no todos logs crecen en la misma proporcion. Y como la comprobación de
tamaño se hace de forma diaria, no tiene porque coincidir unas fechas
con otras.
De todas formas mirando algunos logs las premisas anteriores no se
cumplen 100% :-S.
> Por otro lado, no estoy seguro ahora mismo, pero creo recordar que
> existía una forma de rotar logs cuando superan un determinado tamaño
> (a partir de un demonio). A ver si lo miro esta tarde esto último,
> porque no me acuerdo donde estaba, si es que existía O:)
Si, eso se puede hacer con logrotate y la opcion 'size'
>>>
size size[G|M|k]
Log files are rotated when they grow bigger then size
bytes. If size is followed by M, the size if assumed to be in
megabytes. If the G suffix is used, the size is in gigabytes.
If the k suffix is used, the size is in kilobytes. So size 100,
size 100k, size 100M and size 1G are all valid.
<<<
> No sé porque me temo que va a ser igual ahora, pero por si acaso ;)
Gracias por la ayuda ;-). Lo tengo mucho más claro ahora, aunque como he
comentado antes, hay algunos comportamientos que no me convencen del
todo.
<ordenador_escritorio>
aktor en ObeliX:/var/log$ ls -lh syslog*
307 2005-03-11 15:56 syslog
63K 2005-03-11 15:36 syslog.0
20K 2005-03-06 06:25 syslog.1.gz
1,1K 2005-02-27 06:25 syslog.2.gz
63K 2005-02-26 06:25 syslog.3.gz
25K 2005-02-19 06:25 syslog.4.gz
16K 2005-02-12 06:25 syslog.5.gz
6,0K 2005-02-06 06:25 syslog.6.gz
</ordenador_escritorio>
<ordenador_servidor>
AsteriX log # ls -lh /var/log/syslog*
243K 2005-03-11 17:00 /var/log/syslog
2,2M 2005-03-11 06:30 /var/log/syslog.0
7,8K 2005-03-10 06:30 /var/log/syslog.1.gz
7,9K 2005-03-09 06:30 /var/log/syslog.2.gz
31K 2005-03-08 06:30 /var/log/syslog.3.gz
42K 2005-03-07 06:30 /var/log/syslog.4.gz
30K 2005-03-06 06:30 /var/log/syslog.5.gz
64K 2005-03-05 06:30 /var/log/syslog.6.gz
</ordenador_servidor>
En el ordenador escritorio rota cada semana, lo cual incumple la primera
de las premisas. He comprobado que el arhivo 'syslogd-listfiles' es
distinto:
>>>
aktor en ObeliX:~$ diff /usr/sbin/syslogd-listfiles /tmp/syslogd-listfiles
61c61
< if (($now - (stat $nfile)[7]) > $delta) {
---
> if (($now - (stat $nfile)[9]) > $delta) {
122d121
<
<<<
El archivo '/etc/syslog.conf' si que es el mismo.
A pesar de que esa diferencia si que podría ejecrcer diferencias en las
rotaciones, no justifica que '/var/log/syslog' no rote diariamente.
brrrrrrrrrr
PD: Y no vale como explicación que solo enciendo el ordenador escritorio
una vez a la semana :DDDDDDDDD
Muchas gracias Fermat,
aktor
--
...aquella masa de solidificada razón de dieciséis kilómetros de
longitud, a la que los hombres llamaban Multivac, el más complejo
ordenador jamás construido. -- Isaac Asimov. (1920-1992) Escritor y
científico estadounidense. Fragmento del cuento 'El chistoso'.
This mail is copyleft-ed to aktor under the terms of the CC License
(Creative Commons).
------------ próxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre : no disponible
Tipo : application/pgp-signature
Tamaño : 189 bytes
Descripción: no disponible
Url : https://listas.deusto.es/mailman/private/eside-ghost/attachments/20050311/d4357439/attachment.bin
Más información sobre la lista de distribución eside-ghost