[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