newsyslog: archivando logs

jueves, 8 de marzo de 2007

Esta mañana vi que uno de mis servidores estaba al 100% de disco duro. Se habia desbordado el error_log de Apache. Buscando en Google di con la utilidad que archivaba logs en NetBSD: newsyslog.

Existe un archivo /etc/newsyslog.conf que tiene una linea por cada log a archivar. Los campos de dicha linea son:

  1. nombre del archivo de log
  2. propietario:grupo
  3. permisos del archivo (p.e. 600)
  4. numero de copias a mantener
  5. tamaño minimo para archivar (* = cualquiera)
  6. frecuencia en horas (* = siempre)
  7. opciones varias (Z = comprimir)
  8. ruta del archivo de pid para mandar la señal al demonio
  9. tipo de señal
Los dos ultimos campos son opcionales. Y respecto al tamaño y a la frecuencia, al menos uno de los dos debe ser distinto de *.

/var/log/httpd/access_log 644 10 100 * Z /var/run/httpd.pid
/var/log/httpd/error_log 644  10 100 * Z /var/run/httpd.pid
El cron se encarga de ejecutar newsyslog cada hora.