Benutzer-Werkzeuge

Webseiten-Werkzeuge


synology:bash_script_fuer_snmp_zugriff_auf_usv_daten

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
synology:bash_script_fuer_snmp_zugriff_auf_usv_daten [2026/01/26 09:05] dokuwikiadminsynology:bash_script_fuer_snmp_zugriff_auf_usv_daten [2026/01/28 14:27] (aktuell) dokuwikiadmin
Zeile 14: Zeile 14:
 # SNMPv3 Authentifizierungsdetails # SNMPv3 Authentifizierungsdetails
 USERNAME="{Synology Username mit der entsprechenden Berechtigung}" USERNAME="{Synology Username mit der entsprechenden Berechtigung}"
-AUTH_PASSWORD="{Passwort}" +AUTH_PASSWORD="{Authentication Key}" 
-PRIV_PASSWORD="{Passwort}"+PRIV_PASSWORD="{Private Key}"
 IP_ADDRESS="{IP Adresse der Synology Diskstation}" IP_ADDRESS="{IP Adresse der Synology Diskstation}"
  
-OID für die verbleibende Batterielaufzeit in Sekunden +Datei zum Zwischenspeichern der letzten Restlaufzeit 
-OID=".1.3.6.1.4.1.6574.4.3.6.1.0"+RUNTIME_FILE="/Users/{User Name}/ups_last_runtime.dat" 
 +LOG_FILE="/Users/{User Name}//ups_shutdown.log"
  
 # Schwellwert in Sekunden # Schwellwert in Sekunden
 THRESHOLD=300 THRESHOLD=300
 +
 +# OID für die verbleibende Batterielaufzeit in Sekunden
 +OID=".1.3.6.1.4.1.6574.4.3.6.1.0"
  
 # Restlaufzeit abfragen # 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}') 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 +Falls SNMP fehlschlägt → abbrechen 
-if [ "$REMAINING_RUNTIME" -lt "$THRESHOLD" ]; then +if ! [[ "$REMAINING_RUNTIME" =~ ^[0-9]+]]; then 
-    echo "$(date): UPS remaining runtime is below threshold ($REMAINING_RUNTIME seconds) - shutting down" >> /Users/{User}/ups_shutdown.log +    echo "$(date): ERROR: Invalid SNMP value: $REMAINING_RUNTIME" >> "$LOG_FILE" 
-    # Shutdown Befehl je nach Betriebssystem. Für macOS z.B. mit einem Shortcut: shortcuts run "Shut Down"+    exit 1 
 +fi 
 + 
 +Letzte gespeicherte Restlaufzeit lesen (falls vorhanden) 
 +if [ -f "$RUNTIME_FILE]; then 
 +    LAST_RUNTIME=$(cat "$RUNTIME_FILE")
 else else
- echo "$REMAINING_RUNTIME seconds" +    LAST_RUNTIME=$REMAINING_RUNTIME
- # Bei Bedarf kann jeder Test Protokolliert werden. +
- echo "$(date): $REMAINING_RUNTIME seconds" >> /Users/{User}/ups_shutdown.log+
 fi fi
  
 +# Aktuelle Restlaufzeit speichern
 +echo "$REMAINING_RUNTIME" > "$RUNTIME_FILE"
 +
 +# Entscheidungslogik
 +if [ "$REMAINING_RUNTIME" -lt "$THRESHOLD" ] && [ "$REMAINING_RUNTIME" -lt "$LAST_RUNTIME" ]; then
 +    echo "$(date): UPS runtime decreasing below threshold ($REMAINING_RUNTIME s < $LAST_RUNTIME s) → shutdown" >> "$LOG_FILE"
 +    shortcuts run "Shut Down" -i "UPS remaining runtime ($REMAINING_RUNTIME seconds)."
 +else
 +    echo "$(date): UPS runtime OK ($REMAINING_RUNTIME s, last $LAST_RUNTIME s)" >> "$LOG_FILE"
 +fi
 </code> </code>
  
Zeile 63: Zeile 80:
 </plist> </plist>
 </code> </code>
 +
 +Shortcut in macOS erstellen:
 +  - Suche nach **Show Notification**
 +  - //Hello, World!// mit **Shortcut Input** ersetzen
 +  - Title: UPS Battery low!
 +  - Play Sound: ☑️
 +  - Attachment: Shortcut Input (Type: Text / Get: Text)
 +  - Suche nach "Shut Down"
 +  - Name des Shortcuts ändern in "Shut Down"
 +  - Icon und Farbe nach Bedarf anpassen
 +
synology/bash_script_fuer_snmp_zugriff_auf_usv_daten.1769414742.txt.gz · Zuletzt geändert: von dokuwikiadmin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki