Solaris tiene una utilidad llamada <logadm> que se encarga de rotar los archivos de log que nosotros tengamos configurados en el archivo </etc/logadm.conf>
Aunque inicialmente podemos realizar las configuraciones sobre el mismo archivo no es recomendable y deberemos utilizar el comando <logadm> para gestionar las entradas.
El formato del comando <logadm> es el siguiente:
logadm [-options] logname...Y en opciones tenemos -principalmente- las siguientes
- -a command. Ejecuta el comando <command> después de realizar la rotación. Esta opción es muy útil, por ejemplo para llamar a $APACHE_HOME/bin/apachectl graceful
- -c. Ejecuta la rotación mediante un <copy> y luego trunca el original. Esto nos permite que si tenemos un proceso con descriptores abiertos al log, no perderá las referencias ya que el archivo no es eliminado
- -C count. Mantiene sólo un número de copias <count> de log, cuando llega a ese número, comienza a sobreescribir de forma cíclica
- -e mail_address. Envía un correo con los errores a la dirección de correo <mail_address>
- -p period. Rota después de un periodo de tiempo <period>. Podemos definir el periodo utilizando d para días, h para horas, w para semanas, m para meses e y para años. Por ejemplo, si queremos que rote cada 12h, deberemos utilizar <-p 12h>. Existe una opción especial llamada <now> que rota siempre el archivo de log.
- -s size. Rota cuando el archivo es superior al tamaño definido en <size>. Pdemos definir el tamaño utilizando b para bytes, k para Kb, m para Mb y G para Gb
- -w. Escribe la entrada en el fichero de configuración
- -v. Escribe pos stdout lo que está procesando el comando
- -z count. Comprime los archivos rotados dejando <count> sin comprimir, es decir, si ponemos count con valor 0, todos los archivos rotados estarán comprimidos.
# crontab -lEsta entrada podemos editarla y ponerla a nuestro antojo para tener la rotación, por ejemplo, a las 00:00h y así tener logs diarios.
#ident "@(#)root 1.21 04/03/23 SMI"
#
# The root crontab should be used to perform accounting data collection.
#
#
10 3 * * * /usr/sbin/logadm
Además -y ya concluye la teoría- si no utilizamos ninguna regla de rotación Solaris utilizará <-s1b -p1w> por defecto, es decir, rotar si es mayor de 1 byte y una semana
Rotar Logs de Apache utilizando <logadm>
Vamos a rotar los logs de Apache HTTP, queremos que rote diariamente, guarde 7 copias y que comprima las 6 últimas. Vamos a asumir que nuestro $APACHE_HOME=/opt/www/apache-1.3.41
# logadm -w /opt/www/apache-1.3.41/logs/www.sfchildren.com-error_log -C 7 -p 1d -z 1 -a '/opt/www/apache-1.3.41/bin/apachectl graceful'
# tail -1 /etc/logadm.conf
/opt/www/apache-1.3.41/logs/www.sfchildren.com-error_log -C 7 -a '/opt/www/apache-1.3.41/bin/apachectl graceful' -p 1d -z 1
Rotar Log de PostgreSQL con <copy and truncate>
# logadm -w /var/log/postgres/server.log -C 5 -c -p 1d -z 0Si ejecutamos el comando <logadm> con la opción <-v> -para ver que procesa-, y comprobamos que al utilizar la opción <-c> ha hecho un <cp y truncate>
# tail -1 /etc/logadm.conf
/var/log/postgres/server.log -C 5 -c -p 1d -z 0
# logadm -v
# cargando /etc/logadm.conf
# procesando nombre de registro: /var/log/postgres/server.log
# usando plantilla predeterminada: $archivo.$n
mkdir -p /var/log/postgres # verify directory exists
cp -fp /var/log/postgres/server.log /var/log/postgres/server.log.0 # rotate log file via copy (-c flag)
cp -f /dev/null /var/log/postgres/server.log # truncate log file (-c flag)
touch /var/log/postgres/server.log
chown 101:90 /var/log/postgres/server.log
chmod 600 /var/log/postgres/server.log
# registrando fecha de rotación Thu May 6 07:54:49 2010 para /var/log/postgres/server.log
# escribiendo cambios en /etc/logadm.conf
# ls -l /var/log/postgres/server.log*
-rw------- 1 postgres postgres 0 may 6 09:54 /var/log/postgres/server.log
-rw------- 1 postgres postgres 10160774 may 6 09:24 /var/log/postgres/server.log.0
Conclusión
El comando <logadm> nos permite gestionar de forma sencilla la rotación de logs de nuestro Solaris, además tiene un sistema de gestión sencillo e intuitivo
Referencias
No hay comentarios:
Publicar un comentario