Schlagwort-Archiv: USV

Linux Server durch USV automatisch herunterfahren

Unter Linux steht mit den Network UPS Tools ein leistungsfähiges Werkzeug für die Nutzung von unterbrechungsfreien Stromversorgungen (USV) und die Reaktion auf Signale von diesen bereit. So kann ein Server automatisch heruntergefahren werden, wenn der USV der Strom ausgeht.

Hierzu braucht es aber ein wenig Vorbereitung:

  1. In der Datei /etc/upsmon.conf ein Script definieren, das ausgeführt wird, wenn ein Shutdown-Signal kommt:

    SHUTDOWNCMD "/usr/local/sbin/ups_shutdowncmd.sh"

  2. Darin die erforderlichen Kommandos für den Shutdown hinterlegen. In meinem Falle bedeutet dies, erst alle Mounts meines NAS zu entmounten, dann das NAS herunterzufahren und schliesslich den Server selbst zu stoppen:

    sudo /etc/init.d/netfs stop
    /opt/local/sbin/buffalo_shutdown.sh &
    /bin/sleep 5s
    sudo /sbin/shutdown -h now

    sudo ist erforderlich, weil das Script nicht mit Root-Rechten, sondern mit der UserID von upsmon ausgeführt wird; dies ist bei CentOS 5.3 der User nut

  3. In /etc/sudoers sind folgende Ergänzungen nötig:

    Defaults:nut !requiretty
    nut ALL=(root) NOPASSWD: /sbin/shutdown
    nut ALL=(root) NOPASSWD: /etc/init.d/netfs

    Die „Defaults“ Zeile er möglicht dem User nut auch, Kommandos ohne ein laufendes Terminal abzusetzen. Ohne diese Zeile wären die Kommandos zwar interaktiv von einer Shell, aber nicht aus dem Script möglich. Die beiden anderen Zeilen geben die Kommandos ohne vorherige Passworteingabe frei.