Actualmente, cuando uno de los dos UPS muere, se activa el evento doshutdown y ejecuta el script predeterminado a través de apccontrol . El script de doshutdown ignora el segundo UPS, ya que no están conectados a un evento, y continúa normalmente con el apagado.
Para tener los eventos de doshutdown algo conectados, las dos instancias de apcupsd necesitan un archivo de configuración específicamente personalizado. La diferencia residirá en el directorio desde el que se deben ejecutar los scripts de eventos.
Principales propiedades de las primeras empresas, en /etc/apcupsd/apcupsd.ups0.conf
SCRIPTDIR /etc/apcupsd/ups0
UPSNAME ups0
DEVICE /dev/ups0
PWRFAILDIR /etc/apcupsd/ups0
NOLOGINDIR /etc/apcupsd/ups0
NISPORT 3551
EVENTSFILE /var/log/apcupsd.0.events
Y para los ups1, en /etc/apcupsd/apcupsd.ups1.conf
SCRIPTDIR /etc/apcupsd/ups1
UPSNAME ups1
DEVICE /dev/ups1
PWRFAILDIR /etc/apcupsd/ups1
NOLOGINDIR /etc/apcupsd/ups1
NISPORT 3552
EVENTSFILE /var/log/apcupsd.1.events
Cada scriptdir debe obtener una copia de los scripts predeterminados.
Queremos personalizar el script de doshutdown , que no apagará directamente la máquina, pero debe verificar si el otro UPS todavía está encendido o si está en modo apagado.
En la parte superior del script de doshutdown , podríamos agregar algo como
para ups0
if [ ! -f /tmp/ups1.is.down ]
then
touch /tmp/ups0.is.down
exit 99
fi
para ups1
if [ ! -f /tmp/ups0.is.down ]
then
touch /tmp/ups1.is.down
exit 99
fi
el estado 99 tiene un significado especial, que le dice a apccontrol que detenga la acción en progreso. Las cinco líneas verifican si se ha creado el otro archivo UPS-down-file; si no , el archivo de bajada se crea para las bajadas y se cierra. En caso afirmativo , lo que significa que el otro UPS está apagado, este también se está apagando, por lo que el script debe continuar y apagar la máquina.
Los archivos /tmp/usp[01].is.down
indican si el ups [01] está actualmente abajo.
Importante: el script de inicio init.d de apcupsd debería eliminar estos archivos, si se crearon en una sesión anterior:
rm -f /tmp/usp[01].is.down
Finalmente, los directorios creados anteriormente, / etc / apcupsd / ups [01] deberían tener acceso al usuario apcupsd (o al usuario relevante que ejecute las instancias).
chown -R apcupsd /etc/apcupsd/ups[01]
Por favor, eche un vistazo a la documentación detallada .
edit corrigió los /tmp/ups[01].is.down
nombres, .is
faltaba el.