Actuellement, lorsque l'un des deux onduleurs meurt, l' événement doshutdown est déclenché et exécute le script par défaut via apccontrol . Le script doshutdown ignore le deuxième onduleur, car ils ne sont pas connectés aux événements, et procède normalement à l'arrêt.
Pour que les événements doshutdown soient quelque peu connectés, les deux instances d'apcupsd ont besoin d'un fichier de configuration spécifiquement personnalisé. La différence réside dans le répertoire à partir duquel les scripts d'événements doivent être exécutés.
Principales propriétés des premières, 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
Et pour les ups1, dans /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
Chaque scriptdir doit obtenir une copie des scripts par défaut.
Nous voulons personnaliser le script doshutdown , qui n'arrêtera pas directement la machine, mais doit vérifier si l'autre onduleur est toujours allumé ou en mode d'arrêt.
En haut du script doshutdown , nous pourrions ajouter quelque chose comme
pour ups0
if [ ! -f /tmp/ups1.is.down ]
then
touch /tmp/ups0.is.down
exit 99
fi
pour ups1
if [ ! -f /tmp/ups0.is.down ]
then
touch /tmp/ups1.is.down
exit 99
fi
l'état 99 a une signification spéciale, qui indique à apccontrol d'arrêter l'action en cours. Les cinq lignes vérifient si l'autre fichier UPS-down a été créé; si pas , vers le bas-fichier est créé pour les hauts étant en bas, et les sorties. Si oui , ce qui signifie que l'autre onduleur est en panne, celui-ci est également en panne, donc le script devrait continuer et arrêter la machine.
Les fichiers /tmp/usp[01].is.down
indiquent si le ups [01] est actuellement en panne.
Important: le script init.d start de apcupsd doit supprimer ces fichiers, s'ils ont été créés lors d'une session précédente:
rm -f /tmp/usp[01].is.down
Enfin, les répertoires créés ci-dessus, / etc / apcupsd / ups [01] doivent avoir accès à l' utilisateur apcupsd (ou à l'utilisateur pertinent exécutant les instances).
chown -R apcupsd /etc/apcupsd/ups[01]
Veuillez consulter la documentation détaillée .
edit a corrigé les /tmp/ups[01].is.down
noms, .is
il manquait.
Regardez NUT. Il gère bien cela. Définissez le nombre de blocs d'alimentation de chaque onduleur et le nombre de blocs d'alimentation requis. L'arrêt ne sera pas déclenché tant qu'il n'y aura pas suffisamment d'alimentations hors UPS.
la source