domingo, 4 de octubre de 2009

Creación de logs

Si queremos monitorizar un valor en un pc o servidor, lo mejor será automatizar el proceso de obtención del valor y almacenarlos en un log. Para ello haremos uso de cron. Supongamos que el valor a capturar es la recurrente ocupación de la partición /home.

Paso 1

Vamos a crear el script que se ejecutará periódicamente:

#!/bin/sh
FECHA=`date +%Y-%m-%d:%H:%M`
VALOR=`df | grep /home | tr -s "  " " " | cut -d " " -f 5 | tr -d "%"`

echo $FECHA $VALOR >> /var/log/ocupacion_home.log

Al fichero del script lo vamos a llamar ocupacion_home.sh y lo vamos a guardar en /usr/local/bin/ (estando como usuario root).

Se pueden escoger otros formatos de fecha, aunque este lo veo bastante útil.

Paso 2

Le daremos al fichero del script permisos de ejecución:

# chmod +x /usr/local/bin/ocupacion_home.sh

Paso 3

A continuación vamos a programar cron para que ejecute este comando una vez cada hora. Ejecutar el comando:

crontab -e

Se abrirá un editor (el que tengamos por defecto*) en el que tendremos que escribir lo siguiente:

0 * * * * /usr/local/bin/ocupacion_home.sh

Guardaremos y saldremos del editor. En este momento, de manera automática se registrará cada hora en punto la ocupación de nuestra partición /home.

Si se desea programar otra periodicidad, recomiendo leer el manual de cron o este otro enlace.

* Si queremos usar un editor determinado, por ejemplo vi, ejecutaremos lo siguiente:
 export EDITOR=vi

Tras esto podremos ejecutar crontab -e pues se abrirá con vi. Si queremos hacer que este editor sea siempre nuestro editor predeterminado, habrá que incluir al final del fichero ~/.bashrc la linea anterior.