Configuración básica del demonio smartd para que avise en terminal, escritorio (GTK / KDE) y correo electrónico Gmail (usando curl) si hay alguna falla o subida de temperatura en el disco.
Configuración para smartd: /etc/smartd.conf
DEVICESCAN -a -o on -S on -n standby,q -s (S/../.././20|L/../../6/21) -W 3,30,31 -m usuario@gmail.com -M exec /usr/bin/smartdnotify
El demonio smartd con la opción -W hace un seguimiento de las temperaturas del disco y alerta si se elevan demasiado rápido o llega a un límite determinado. Para el ejemplo, el servicio avisa y registra cuando se produzcan cambios de temperatura de 3 o más grados o cuando algún disco alcance 30 grados. A partir de 31 grados además de registrarlo envía la alerta por correos electrónico (-m).
Con la opción “-s” smartd puede definir el momento (día y hora) de hacer las pruebas automáticas. la configuración del ejemplo especifica un test corto todos los días entre las 20-21 de la noche y uno largo los sábados entre las 21-22.
Para poder enviar correos utilizando una cuenta Gmail y sin usar nada más que curl, debemos crear el fichero /usr/bin/smartdnotify.
#! /bin/sh echo "From: SMARTD <usuario@gmail.com> To: usuario@gmail.com Date: $date Subject: S.M.A.R.T " > /tmp/smartdmail echo "$SMARTD_MESSAGE" >> /tmp/smartdmail curl --url "smtps://smtp.gmail.com:465" --ssl-reqd --mail-from "usuario@gmail.com" --mail-rcpt "usuario@gmail.com" --upload-file /tmp/smartdmail --user "usuario:PASSWORD" > /dev/null 2>&1 & rm /tmp/smartdmail # Notify user wall "$SMARTD_MESSAGE" # Si se dispone de zenity (GTK) o Kdialog se puede usar el siguiente comando para notificaciones de escritorio. (ej. privilegios del usuario "busi"). #export DISPLAY=:0.0 #export XAUTHORITY=/home/busi/.Xauthority # Zenity # su busi -c 'zenity --warning --text "$SMARTD_MESSAGE" --display=:0.0' # Si se dispone de Kdialog se puede usar el siguiente comando para notificaciones de escritorio. # su busi -c 'kdialog --sorry "$SMARTD_MESSAGE"'
A cada alerta producida se ejecutará el script smartdnotify, enviando un mail con curl y mostrando en todas las terminales del sistema la alerta.
Ejemplo de notificación SMART en consola.
Mensaje de difusión general (broadcast) de busi@busiarch (pts/0) (Mon Apr 6 0 Device: /dev/sdc [SAT], Temperature 32 Celsius reached critical limit of 21 Celsius (Min/Max ??/32)
Administración del demonio smartd en Arch GNU/Linux.
# Iniciar el demonio. systemctl start smartd # Comprobar el estado del demonio smartd. systemctl status smartd # Inicio automático de smartd en el arranque del sistema. systemctl enable smartd # Leer logs de smartd en Arch. journalctl -u smartd