# [Mini-Cómo] Monitorizar apagones

## pcmaster

La idea es implementar un sistema que permita controlar el tiempo que un PC está apagado, tanto si se ha apagado normalmente, como si es a consecuencia de un apagón. Por ello no se puede poner nada en /etc/conf.d/local.stop porque, en caso de un apagón, no haría nada.

La solución es la siguiente:

Creamos un archivo en /etc/init.d/inicios con el siguiente contenido:

#!/sbin/runscript

# Copyright 1999-2007 Gentoo Foundation

# Distributed under the terms of the GNU General Public License v2

# $Header: $

depend() {

before cron

after ntpd ntp-client

}

start() {

ebegin "Iniciando log de inicio"

mkdir -p /var/log/inicios

if (`test -f "/var/log/inicios/actual.log"`); then

mv /var/log/inicios/actual.log /var/log/inicios/$"`date +%Y.%m.%d-%H:%M:%S`"

fi

eend $? "No se pudo iniciar el log de inicio"

} 

y lo ponemos en el runlevel default con un

# rc-update add inicios default

Después creamos un archivo en /usr/local/sbin/inicios.sh que contiene:

#! /bin/bash

#

# Programa para comprobar los inicios del PC

echo `date +%Y.%m.%d-%H:%M:%S` >/var/log/inicios/actual.log 

y lo ponemos en el cron para que se ejecute cada minuto, añadiendo al crontab la línea:

* * * * * /usr/local/sbin/inicios.sh 

El funcionamiento es el siguiente: cada minuto, el script ejecutado por el cron guarda la fecha y hora actual en un archivo /var/log/inicios/actual.log, en formato AAAA.MM.DD-HH:MM:SS. Cuando arranca de nuevo tras un apagado (correcto o tras un corte), el archivo /etc/init.d/inicios se ejecuta y cambia el nombre del archivo poniéndole como nombre la hora y fecha actual. Por razones obvias debe ejecutarse antes de que lo haga el cron por primera vez.  Cuando se ejecuta el cron, se crea un nuevo archivo actual.log. El resultado es que en /var/log/inicios tenemos una serie de archivos cuyo nombre es la fecha y hora a la que se ha iniciado el PC, y cuyo contenido, de texto, es la hora a la que se había apagado antes de iniciar. Es decir, cada archivo contiene información sobre un período de tiempo durante el cual el PC ha permanecido apagado.

----------

