[eside-ghost] logrotate - aviso: email largo

aktor aktor en aktornet.ath.cx
Vie Mar 11 01:57:21 CET 2005


Aupi,

PD: El email es un poco largo y tecnico, pero creo que está lo
suficientemente comentado para que se entienda ;-)

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

Intentaré explicar el proceso para debian:

0) al arrancar el sistema, uno de los procesos que se arranca es 'cron'

>>>
$ cat /etc/rc2.d/S89cron 
#!/bin/sh
# Start/stop the cron daemon.
[..]
<<<

El demonio cron busca cada minuto tareas en 3 rutas:

 - /var/spool/cron/crontabs/
 - /etc/crontab
   ^^^^^^^^^^^^
 - /etc/cron.d/


1) /etc/crontab 

Analicemos el archivo '/etc/crontab'

>>>
# cat /etc/crontab 

# m h dom mon dow user  command
17 * * * * root run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || run-parts --report
/etc/cron.daily 
     ^^^^^^^^^^
47 6 * * 7 root test -x /usr/sbin/anacron || run-parts --report
/etc/cron.weekly  
52 6 1 * * root test -x /usr/sbin/anacron || run-parts --report
/etc/cron.monthly
<<<


2) /etc/cron.daily

Analicemos el directorio '/etc/cron.daily'. En el tendremos todos
aquellos script que se ejecutaran una vez diaria (todos los días a las
6:25 am)

>>>
$ cat /etc/cron.daily/logrotate 
#!/bin/sh
test -x /usr/sbin/logrotate || exit 0
/usr/sbin/logrotate /etc/logrotate.conf
                    ^^^^^^^^^^^^^^^^^^^
<<<

3) /etc/logrotate.conf

Analicemos el archivo '/etc/logrotate.conf'

>>>
$ cat /etc/logrotate.conf 
# see "man logrotate" for details
# rotate log files weekly
weekly
^^^^^^
[..]

# packages drop log rotation information into this directory
include /etc/logrotate.d
^^^^^^^^^^^^^^^^^^^^^^^^
# no packages own wtmp, or btmp -- we'll rotate them here
/var/log/wtmp {
    missingok
    monthly
    create 0664 root utmp
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0664 root utmp
    rotate 1
}

# system-specific logs may be configured here
<<<

>>>
# ls /etc/logrotate.d/
aptitude  atop  base-config  clamav-freshclam  cupsys  iptraf 
mrtg scrollkeeper
<<<

Podemos ver que el archivo de configuración indica una serie de
aplicaciones que se van a rotar cada una en función a los parámetros
indicados.

Veamos uno de ellos, mtrg por ejemplo.


4) /etc/logrotate.d/mrtg

>>>
$ cat /etc/logrotate.d/mrtg 
/var/log/mrtg/mrtg.log {
        weekly
        ^^^^^^
        rotate 12
        ^^^^^^^^^
        compress
        missingok
}
<<<

Mantendrá 12 archivos de log's rotados y comprimidos semanalmente.

Y *lo comprobamos*:

>>>
2005-03-10 08:16 /var/log/mrtg/mrtg.log 
2005-03-06 06:32 /var/log/mrtg/mrtg.log.1.gz
2005-02-27 06:27 /var/log/mrtg/mrtg.log.2.gz
2005-02-20 06:27 /var/log/mrtg/mrtg.log.3.gz
2005-02-13 06:27 /var/log/mrtg/mrtg.log.4.gz
2005-02-06 06:26 /var/log/mrtg/mrtg.log.5.gz
2005-01-30 06:27 /var/log/mrtg/mrtg.log.6.gz
2005-01-23 06:26 /var/log/mrtg/mrtg.log.7.gz
2005-01-16 06:27 /var/log/mrtg/mrtg.log.8.gz
2005-01-09 06:31 /var/log/mrtg/mrtg.log.9.gz
2005-01-02 06:28 /var/log/mrtg/mrtg.log.10.gz 
2004-12-26 06:27 /var/log/mrtg/mrtg.log.11.gz
2004-12-19 06:26 /var/log/mrtg/mrtg.log.12.gz
<<<

Efectivamente todos los log's guardan una distancia temporal de 7 días.
Hasta aquí todo bien.


5) /etc/cron.weekly/sysklogd

Veamos el contenido de este script que se ejecuta cada semana a las
6:47am.

>>>
$ cat /etc/cron.weekly/sysklogd
test -x /usr/sbin/syslogd-listfiles || exit 0
test -x /sbin/syslogd || exit 0
test -f /usr/share/sysklogd/dummy || exit 0

set -e

cd /var/log
for LOG in `syslogd-listfiles --weekly`
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
do
   if [ -s $LOG ]; then
      savelog -g adm -m 640 -u root -c 4 $LOG >/dev/null
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   fi
done
<<<

El comando savelog sirve para copiar y rotar archivos:

>>>
ObeliX:/var/log# ls -l auth.log*
-rw-r-----  1 root adm 12370 2005-03-11 01:39 auth.log
-rw-r-----  1 root adm 63008 2005-03-06 06:47 auth.log.0
                                        ^^^^^ -> 6:47AM
-rw-r-----  1 root adm 13503 2005-02-27 06:47 auth.log.1.gz
-rw-r-----  1 root adm  4739 2005-02-06 06:47 auth.log.2.gz
-rw-r-----  1 root adm  4831 2005-01-30 06:47 auth.log.3.gz
ObeliX:/var/log# savelog -g adm -m 640 -u root -c 4 auth.log
Rotated `auth.log' at vie mar 11 01:46:04 CET 2005.
ObeliX:/var/log# ls -l auth.log*
-rw-r-----  1 root adm     0 2005-03-11 01:46 auth.log
                       ^^^^^^^^^^^^^^^^^^^^^^-> ROTADO A MANO
-rw-r-----  1 root adm 12370 2005-03-11 01:39 auth.log.0
-rw-r-----  1 root adm  4549 2005-03-06 06:47 auth.log.1.gz
-rw-r-----  1 root adm 13503 2005-02-27 06:47 auth.log.2.gz
-rw-r-----  1 root adm  4739 2005-02-06 06:47 auth.log.3.gz
<<<

El script rota una serie de archivos, que son los siguientes:

>>>
# syslogd-listfiles --weekly
/var/log/mail.warn
/var/log/uucp.log
/var/log/user.log
/var/log/daemon.log
/var/log/messages
/var/log/debug
/var/log/auth.log
/var/log/mail.err
/var/log/mail.log
/var/log/kern.log
/var/log/lpr.log
/var/log/mail.info
<<<


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

Bien vamos a comprobar con otro:

>>>
# ls -l /var/log/mail.log*
-rw-r-----  1 root adm   156 2005-03-10 11:35 mail.log
-rw-r-----  1 root adm  2347 2005-03-06 06:27 mail.log.0
-rw-r-----  1 root adm  1264 2005-02-26 06:27 mail.log.1.gz
-rw-r-----  1 root adm   395 2005-02-06 06:27 mail.log.2.gz
-rw-r-----  1 root adm 51817 2003-07-13 11:23 mail.log.3.gz

# # ls -l /var/log/debug*
-rw-r-----  1 root adm  5728 2005-03-10 11:35 debug
-rw-r-----  1 root adm 34368 2005-03-05 12:14 debug.0
-rw-r-----  1 root adm 37016 2005-02-25 08:01 debug.1.gz
-rw-r-----  1 root adm   764 2005-02-05 14:34 debug.2.gz
-rw-r-----  1 root adm 96538 2005-02-04 08:20 debug.3.gz
-rw-r-----  1 root adm  1511 2005-01-21 09:30 debug.4.gz
-rw-r-----  1 root adm   339 2004-12-11 14:49 debug.5.gz
-rw-r-----  1 root adm  3430 2003-10-24 16:03 debug.6.gz
<<<

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).

¿Por qué?

Muchas gracias, un saludo

aktor
-- 
No se te ocurra usar el teléfono para llamar a los bomberos. Estoy en lo
mejor de un download!!!
		-- Www.frases.com. 

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/5d5baeaa/attachment.bin


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