[eside-ghost] logrotate - aviso: email largo

Alvaro Uría fermat en rigel.deusto.es
Vie Mar 11 10:57:47 CET 2005


Ese aktor!

On Fri, 11 Mar 2005 01:57:21 +0100
aktor <aktor en aktornet.ath.cx> wrote:

> Estaba intentando entender como funciona el logrotate de los sistemas
> tipo unix y hay un punto en el que me pierdo.

Yo tb me estuve peleando con ello hace un tiempo y hasta que me dí cuenta
que el comando "syslogd-listfiles" es un perl script (menos guasa XD) que
está en"/usr/sbin/syslogd-listfiles", también me costó entenderlo.

> Intentaré explicar el proceso para debian:
> 
> 0) al arrancar el sistema, uno de los procesos que se arranca es 'cron'
> 1) /etc/crontab 
> 2) /etc/cron.daily
> 3) /etc/logrotate.conf
> 4) /etc/logrotate.d/mrtg
> 5) /etc/cron.weekly/sysklogd

> Bueno, hasta aquí parece que todo también bien. Entonces... esto debería
> cumplirse para todos y cada uno de los archivos, ¿no?

No, porque el p*t* sc*p* de l*s... el syslogd-listfiles lo que hace
exactamente es:

 1. Lee el /etc/syslog.conf, y carga unas variables por defecto. Entre
ellas está una con el tamaño mínimo del fichero de log para rotarlo, que
no se usa siempre, pero que hay que tener en cuenta (el tamaño por defecto
es 1MB).

 2. Del /etc/syslog.conf se pillan las líneas tipo:
	mail.*(tabulador)path_al_fichero

Nota: las facility.priority que aparecen en varias líneas estilo:
>>>>
*.=info;*.=notice;*.=warn;\
        auth,authpriv.none;\
        cron,daemon.none;\
        mail,news.none          -/var/log/messages
<<<<
las pone el script en una sóla línea.

 3. Luego se parsean estas líneas, separando lo que son las
facility.priority (estilo mail.info) del path al fichero. Y según los
parámetros que le pases en consola a "syslogd-listfiles" escoge un fichero
u otro:

	Ejemplos:
		Si no le has pasao el parámetro "--news", pasa totalmente de las
líneas que contengan news.(loquesea, incluso *)
		Si se lo has pasado, (el "--news", pasará de las líneas que NO
contengan esa facility, e irá al tratamiento por defecto (lo explico al
final).

		Si le pasas el parámetro "--auth", mostrará las líneas que
contengan auth.(loquesea) y/o authpriv.(loquesea).

		Si le pasas el parámetro "-a" lo muestra todo.


TRATAMIENTO POR DEFECTO (el else final xD)

	Aquí es donde irá con el resto de parámetros (incluídos no pasarle
parámetro, o el "--weekly"). Te digo los posibles casos.

 1. Si no le pasas parámetro (como en /etc/cron.daily o así), y la
facility.priority es de tipo *.* (como la de /var/log/syslog) --> SE
MUESTRA

 2. Si no le pasas parámetro, y el fichero OCUPA más del tamaño establecido
(por defecto 1MB)--> SE MUESTRA

 3. Si le pasas el parámetro "--weekly" (o "-w"), y no tiene la
facility.priority de tipo *.*, y el último cambio en el fichero es de hace
como mínimo 5 horas (por defecto es 5 sí :O) --> SE MUESTRA


Que sepas que tienes la opción de pasarle al comando este la opción
"--large numero_de_bytes" (por defecto 1024*1024, o sea 1MB ¿no? lo
pregunto porque en "syslogd-listfiles -h" dice que por defecto son 10MB :?)


También tienes la opción de que no te muestre un fichero que contiene
algunos caracteres. Por ejemplo "syslogd-listfiles -w -s mail".

> Y vemos que no se cumplen ni la equidistancia temporal establecida (7
> días) ni el número de archivos rotados que queremos mantener (4).

Otra cosa, cuando se rota un fichero, guarda la fecha de la última
modificación del fichero, o sea que aunque se rote a las 6:24 de la mañana,
en realidad guardará la fecha de la última escritura en el fichero (incluso
si lo gzipeas XD), por ejemplo, las 2:00 de la mañana.

> ¿Por qué?

Uffff, a estas alturas me lo preguntas? XDDDDDDDDDDDDDDDDD ;))))

> Muchas gracias, un saludo

Si tienes cualquier duda, me dices ;P

> aktor

Bueno, a ver si trabajo algo x)

Saludos,
  Alvaro Uría
------------ 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/93102963/attachment.bin


Más información sobre la lista de distribución eside-ghost