O programie ETAD

Program służy do nadzorowania pracy zasilaczy awaryjnych mini UPS oraz midi UPS produkowanych przez Spółdzielnie Pracy Elektroniki i Informatyki "ETA" w Poznaniu. Program dostarczany jest wraz z kodem źródłowym na warunkach licencji GNU. Kompilowany i testowany był pod systemem Linux Slackware lecz powinien pracować również pod innymi dystrybucjami Linuxa.

Opis działania

Program etad może działać w dwóch podstawowych trybach: jako demon - serwer bezpośrednio nadzorujący pracę UPSa oraz jako klient zainstalowany na zdalnym komputerze, który poprzez sieć monitoruje stan odległego UPSa. Program ma wiele opcji wywoływanych z linii poleceń. Lista wszystkich opcji dostępna jest przez wywołanie
 

$ etad -h


Przykłady:

Uruchom etad w trybie testowania, UPS podłączony do ttyS0

# etad -t /etc/ttyS0


Uruchom etad jako demon nadzorujący pracę UPSa podłaczonego do ttyS1

# etad /etc/ttyS1 &


Uruchom etad jako demon nadzorujący pracę UPSa podłaczonego do ttyS1i wyłącz testowanie podłączenia kabla monitorującego.

# etad -k /etc/ttyS1 &


Uruchom etad jako slave nadzorujący pracę UPSa podłączonego do zdalnego komputera o adresie host.siec.pl

# etad -s host.siec.pl


Wyłącz UPS

# etad -w /etc/ttyS0


Wykonaj pojedyńczy pomiar i zwróć kod stanu UPSa

# etad -i -1 /etc/ttyS0


Jeżeli wykryty zostanie zanik zasilania, etad informuje o tym poprzez init, który uruchamia wpisy powerfail, powerokwait lub powerfailnow znajdujące się w /etc/inittab. Jeżeli program pracuje w trybie pojedyńczego pomiaru (parametr -i), to zwraca kod liczbowy informujący o stanie UPSa:

Kompilacja i instalacja

Instalację programu etad realizuje się w czterech krokach opisanych poniżej.

1. Kompilację można przeprowadzić jako zwykły użytkownik, instalację jako root.

$ make
$ su -c "make install"


2. Po zakończeniu instalacji należy jeszcze dokonać wpisów do plików systemowych. Aby demon etad startował automatycznie przy starcie Linuxa, wpisz do właściwego skryptu startowego (np. do /etc/rc.d/rc.local )następującą sekwencję:
 

if [ -f /usr/sbin/etad ]; then
        /usr/sbin/etad    /dev/ttyS0 &
fi


Jeżeli  chcemy, aby demon wystartował w trybie slave, należy wpisać następującą sekwencję:
 

if [ -f /usr/sbin/etad ]; then
        /usr/sbin/etad  -s   serwer.z_upsem.com   &
fi

 

 

Aby UPS się wyłączył po zatrzymaniu systemu, należy dopisać  na samym końcu  skryptu  wykonującego się jako ostatni następującą sekwencję ( w Slackware jest to /etc/rc.d/rc.6):
 

# Wyłączenie UPSa
sync
if [ -f /usr/sbin/etad ]; then
        echo "Wyłączam UPS! PaPa!"
        sleep 1
        /usr/sbin/etad -w /dev/ttyS0
fi

 

 

W powyższym poleceniu użyj właściwej ścieżki (jeżeli etad jest zainstalowany w innym katalogu). Zamiast /dev/ttyS0 użyj nazwy urządzenia pod które podłączony został UPS.

3. Zmodyfikuj plik /etc/inittab  poprzez  wprowadzenie następujących wpisów:
 

# Co robić, gdy zaniknie napięcie zasilania
pf::powerfail:/sbin/shutdown -f -h +15 "UWAGA! Zanik zasilania sieciowego."
# Anuluj shutdown, gdy wróci napięcie  sieciowe
pg:0123456:powerokwait:/sbin/shutdown -c "Jest zasilanie sieciowe."
# Co robic, gdy niskie napięcie baterii i nie ma sieci
pp::powerfailnow:/etc/do_haltnow

 

 

Skrypt /etc/do_haltnow wygląda następująco:
 

#!/bin/bash
# Skrypt uruchamiany w przypadku, gdy nie ma zasilania sieciowego
# i jest niski poziom napiecia baterii UPSa
# Zabijam starą instancję shutdown (jeżeli istnieje)
/sbin/shutdown -c 2>&1 >/dev/null
# Zatrzymuje system
/sbin/shutdown -h now "ALARM! Niski poziom baterii, natychmiastowe zatrzymanie systemu!"

 

 

Skrypt /etc/do_haltnow musi być plikiem wykonywalnym:
 

# chown root.root /etc/do_haltnow ; chmod u+x /etc/do_haltnow

 

 

Teraz  należy spowodować, aby init przeczytał ponownie swój plik konfiguracyjny:
 

# telinit q

 

 

4. Na koniec należy do pliku /etc/syslog.conf wprowadzić wpis:
 

*.warn                                          /usr/adm/syslog

 

 

Pamiętaj, aby między  wpisem *.warn a  /usr/adm/syslog  użyć  znaków tabulacji a nie spacji! Na koniec zrestartuj demona syslogd poprzez
 

# kill -HUP  <pid>

 

 

i już  możesz przystąpić do testowania połączenia z UPSem.
 


Testowanie połączenia z UPSem

Testowanie współpracy programu etad z UPSem należy przeprowadzić ze szczególną ostrożnością. Polecam następującą metodykę:

  1. Zasilić komputer bezpośrednio z sieci (z pominięciem UPSa).
  2. Podłączyć UPS do sieci a kabel połączeniowy przyłączyć do odpowiedniego portu szeregowego.
  3. Uruchomić ręcznie demon etad
  4. Sprawdzić, czy poprawnie współpracuje z UPSem w sytuacji, gdy zaniknie zasilanie sieciowe UPSa (zasymulować ten stan poprzez odłączenie zasilania sieciowego UPSa) oraz w sytuacji, gdy wystąpi stan niskiego poziomu napiecia baterii.
  5. Jeżeli wszystko jest w porządku można podłączyć zasilanie komputera do UPSa.
Czy demon etad pracuje poprawnie najprościej można się przekonać wykorzystując telnet:
 
$ telnet 192.168.1.2   401
Trying 192.168.1.2...
Connected to 192.168.1.2.
Escape character is '^]'.
ETAUPS  0
Connection closed by foreign host.


Komunikat ETAUPS  0 wskazuje na to, że UPS pracuje prawidłowo.

Uwagi końcowe

Jeżeli masz jakieś pytania dotyczące oprogramowania i jego instalacji, skontaktuj się z firmą ETA lub bezpośrednio ze mną pisząc na adres marekol@xox.pl