Configurando nuestro SAI en Linux

Introducción

En un anterior artículo os comenté las ventajas de disponer de un SAI conectado a vuestro equipo (es decir, entre la toma de corriente y vuestro PC). En este artículo os comento cómo configurar vuestro equipo Linux (*) para tener en cuenta los eventos que recibe nuestro SAI y poder actuar en consecuencia. El software que en Linux se encarga de gestionar estas cositas se llama NUT (Network UPS Tools). A continuación veremos cómo instalarlo y configurarlo. NOTA: partimos de que tenemos nuestro PC conectado ya al SAI tanto con el cable de corriente como por cable USB para la comunicación del software con el mismo.

Instalación

Este software lo podéis encontrar en los repositorios de vuestra distro favorita casi con total seguridad (si no, podéis descargarlo de la web oficial). En nuestro caso (openSUSE) haremos esto:

zypper in nut

Configuración

Una vez tenemos instalado el software en nuestro sistema tenemos que configurar unos cuantos ficheros, ubicados todos en /etc/ups, a saber:

  • nut.conf
  • ups.conf
  • upsd.conf
  • upsd.users
  • upsmon.conf

Investigando en Internet una buena guía para configurar NUT encontré esta web, en la que el autor explica perfectamente no sólo cómo configurar NUT sino como probarlo e incluso tratar los posibles errores. Os recomiendo encarecidamente que le echéis un vistazo, sobre todo si usáis openSUSE. A continuación os indico las líneas de los ficheros de configuración que tenéis que tener para que os funcione bien. El resto de líneas que aquí se omiten podéis dejarlas con los valores por defecto. En la guía que os comentaba antes tenéis bastante bien explicado para qué sirven. Pondré una breve descripción y directamente las líneas a añadir/modificar.

nut.conf

Aquí configuramos el modo de funcionamiento del software:

MODE=standalone

ups.conf

Aquí se especifica el SAI (o SAIs) que vamos a monitorizar. Lo más importante aquí es el driver que se elige (**):

[eaton]
driver = usbhid-ups
port = auto
desc = "Eaton SAI en skywalker"

upsd.conf

IP y puerto donde va a escuchar peticiones el demonio upsd. Aquí también configuraríamos si debemos conectarnos a máquinas remotas para que se apaguen si es que la principal ha detectado corte de suministro eléctrico. El PC conectado al SAI sería el master (maestro) y los demás equipos serían slaves (esclavos). En nuestro caso sólo controlamos una máquina, la nuestra, por tanto:

LISTEN 127.0.0.1 3493

upsd.users

Usuarios que podrán conectarse al servicio upsd (***):

[upsmaster]
password = mipassword
upsmon master

upsmon.conf

Aquí se configura la cadena de conexión al SAI y el comando a lanzar para realizar el shutdown del equipo entre otras cosas (lo más importante son estos dos valores, el resto se pueden quedar con las opciones por defecto):

MONITOR eaton@localhost 1 upsmaster mipassword master
SHUTDOWNCMD "/sbin/shutdown -h +0"

upssched.conf

 

CMDSCRIPT /usr/sbin/upssched-cmd

PIPEFN /var/lib/ups/upssched.pipe
LOCKFN /var/lib/ups/upssched.lock

AT ONBATT * START-TIMER two-minute-warning-timer 5
AT ONBATT * START-TIMER one-minute-warning-timer 65
AT ONBATT * START-TIMER shutdown-timer 125

AT ONLINE * CANCEL-TIMER two-minute-warning-timer
AT ONLINE * CANCEL-TIMER one-minute-warning-timer
AT ONLINE * CANCEL-TIMER shutdown-timer
AT ONLINE * EXECUTE ups-back-on-line

AT LOWBATT * EXECUTE ups-low-battery
AT LOWBATT * START-TIMER shutdown-timer 35

Primera prueba

Para ver que todo va OK podemos ejecutar:

upsc NOMBRE_SAI

que es el nombre que hemos definido en ups.conf y que también podemos ver con el comando:

upsc -L

Otro comando interesante es:

upscmd -l NOMBRE_SAI

que muestra los comandos que podemos usar con nuestro SAI (no todos los modelos permiten esto).

Ejemplo de comando:

upscmd -u USER -p PASSWORD NOMBRE_SAI beeper.disable

el cuál deshabilita el pitido del SAI (suponiendo que en el listado de comandos que se muestran con “upsc -l” aparece dicho comando).

 

Si va todo Ok ya lo tenemos. Si da algún fallo mirad la sección siguiente.

Posibles fallos

Si tras terminar de configurar todo falla algo a la hora de arrancar el servicio, un problema muy frecuente es que se los permisos de los archivos estén mal. Para corregirlo mirad aquí (apartado 2) cómo tienen que estar. Más errores son tratados y explicados en el apartado 10 de dicho artículo.

Conclusiones

Si no tenéis ningún sistema que proteja vuestros equipos contra problemas con el suministro eléctrico (sobre todo picos de corriente) no deberíais dejarlo así mucho más tiempo. Tenéis la opción de poner una regleta con protección o bien un SAI como vimos en el anterior artículo. Si ponéis un SAI, como habéis podido ver en el artículo, le podéis sacar bastante partido haciendo, por ejemplo, que vuestro equipo se apague de forma controlada si hay un apagón. Espero que os sirva.

(*) Particularizaré para mi distro (openSUSE) pero esto es válido para prácticamente cualquier otra distro.

(**) Para saber cuál es el que se necesita tenemos que saber primero qué SAI tenemos (esto lo podemos ver con un lsusb -v). Una vez que lo sabemos (tanto marca como modelo) consultaremos aquí cuál es el que corresponde. En nuestro caso tenemos un Eaton Protection Station, por lo que el driver a elegir es usbhid-ups. También podemos consultar la página del manual de nutupsdrv (al final de la misma aparecen todos los drivers y consultando su manual se pueden ver los modelos y comandos soportados).

(***) No son usuarios del sistema sino usuarios del propio software; estas credenciales se usan en el fichero upsmon.conf.