Obecnie, gdy umiera jeden z dwóch UPS, zdarzenie doshutdown jest wyzwalane i wykonuje domyślny skrypt poprzez apccontrol . Doshutdown skrypt ignoruje drugi zasilacz, ponieważ nie są one połączone zdarzeń i wykonywane normalnie z wyłączenia.
Aby zdarzenia doshutdown były nieco połączone, dwa wystąpienia apcupsd wymagają specjalnie dostosowanego pliku konfiguracyjnego. Różnica będzie znajdować się w katalogu, z którego należy wykonać skrypty zdarzeń.
Główne właściwości pierwszych zakładów, w /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
I dla wzlotów1, w /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
Każdy skrypt skryptowy powinien otrzymać kopię domyślnych skryptów.
Chcemy dostosować skrypt doshutdown , który nie spowoduje bezpośredniego wyłączenia maszyny, ale musi sprawdzić, czy drugi UPS nadal jest włączony lub znajduje się w trybie zamykania.
Na górze skryptu doshutdown moglibyśmy dodać coś takiego
dla ups0
if [ ! -f /tmp/ups1.is.down ]
then
touch /tmp/ups0.is.down
exit 99
fi
dla ups1
if [ ! -f /tmp/ups0.is.down ]
then
touch /tmp/ups1.is.down
exit 99
fi
status 99 ma specjalne znaczenie, które mówi apccontrolowi, aby zatrzymał trwającą akcję. Pięć wierszy sprawdza, czy utworzono drugi plik awaryjny UPS; jeśli nie , plik w dół jest tworzony dla upadków w górę i kończy działanie. Jeśli tak , co oznacza, że drugi UPS jest wyłączony, ten również się wyłącza, dlatego skrypt powinien kontynuować i wyłączyć maszynę.
Pliki /tmp/usp[01].is.down
wskazują, czy wzrost [01] jest obecnie wyłączony.
Ważne: skrypt init.d start apcupsd powinien usunąć te pliki, jeśli zostały utworzone w poprzedniej sesji:
rm -f /tmp/usp[01].is.down
Wreszcie, katalogi utworzone powyżej, / etc / apcupsd / ups [01] powinny otrzymać dostęp do użytkownika apcupsd (lub dowolnego użytkownika uruchamiającego instancje).
chown -R apcupsd /etc/apcupsd/ups[01]
Proszę spojrzeć na szczegółową dokumentację .
edycja poprawiła /tmp/ups[01].is.down
nazwy, .is
brakowało.
Spójrz na NUT. Dobrze sobie z tym radzi. Zdefiniuj liczbę zasilaczy z każdego zasilacza UPS i liczbę wymaganych zasilaczy. Wyłączenie nie zostanie uruchomione, dopóki nie będzie wystarczających źródeł zasilania w UPS.
źródło