Benutzer-Werkzeuge

Webseiten-Werkzeuge


synology:bash_script_fuer_snmp_zugriff_auf_usv_daten

Dies ist eine alte Version des Dokuments!


Wenn die USV über ein USB Kabel an das Synology NAS angeschlossen ist, kann über SNMP der Status der USV, wie zum Beispiel die Restlaufzeit in Sekunden abgefragt werden. Dieses BASH Script kann auf macOS oder Linux Umgebung alle Minuten laufen und die Restlaufzeit prüfen. Wird diese unterschritten wird ein Shutdown des Computers an der USV durchgeführt.

Hinweis: Diese Anleitung funktioniert nur wenn der User angemeldet ist.

Alle Daten in geschwungenen Klammern {} müssen angepasst werden!

Dateiname im Home Verzeichnis des angemeldeten Users erstellen:

nano ~/check_ups_runtime.sh

Diesen Inhalt kopieren und anpassen:

#!/bin/bash

# SNMPv3 Authentifizierungsdetails
USERNAME="{Synology Username mit der entsprechenden Berechtigung}"
AUTH_PASSWORD="{Passwort}"
PRIV_PASSWORD="{Passwort}"
IP_ADDRESS="{IP Adresse der Synology Diskstation}"

# OID für die verbleibende Batterielaufzeit in Sekunden
OID=".1.3.6.1.4.1.6574.4.3.6.1.0"

# Schwellwert in Sekunden
THRESHOLD=300

# Restlaufzeit abfragen
REMAINING_RUNTIME=$(snmpget -v3 -l authPriv -u "$USERNAME" -a SHA -A "$AUTH_PASSWORD" -x AES -X "$PRIV_PASSWORD" "$IP_ADDRESS" "$OID" | awk '{print $NF}')

# Prüfen, ob die Restlaufzeit unter dem Schwellwert liegt
if [ "$REMAINING_RUNTIME" -lt "$THRESHOLD" ]; then
    echo "$(date): UPS remaining runtime is below threshold ($REMAINING_RUNTIME seconds) - shutting down" >> /Users/{User}/ups_shutdown.log
    # Shutdown Befehl je nach Betriebssystem. Für macOS z.B. mit einem Shortcut: shortcuts run "Shut Down"
else
	echo "$REMAINING_RUNTIME seconds"
	# Bei Bedarf kann jeder Test protokolliert werden.
	echo "$(date): $REMAINING_RUNTIME seconds" >> /Users/{User}/ups_shutdown.log
fi

Datei ausführbar machen:

chmod +x ~/check_ups_runtime.sh

In macOS kann dann launchd zum regelmäßigen Ausführen verwendet werden:

nano ~/Library/LaunchAgents/com.{User}.check_ups_runtime.plist

Diesen Inhalt eintragen und entsprechend anpassen. In diesem Beispiel wird das Script alle 60 Sekunden ausgeführt:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Label</key>
	<string>com.{User}.check_ups_runtime</string>
	<key>ProgramArguments</key>
	<array>
		<string>/bin/bash</string>
		<string>/Users/{User}/check_ups_runtime.sh</string>
	</array>
	<key>StartInterval</key>
	<integer>60</integer>
</dict>
</plist>
synology/bash_script_fuer_snmp_zugriff_auf_usv_daten.1769414881.txt.gz · Zuletzt geändert: von dokuwikiadmin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki