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
synology:bash_script_fuer_snmp_zugriff_auf_usv_daten [2026/01/26 09:37] 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. +    exit 1 
-    shortcuts run "Shut Down" -"UPS remaining runtime ($REMAINING_RUNTIME seconds)."+fi 
 + 
 +Letzte gespeicherte Restlaufzeit lesen (falls vorhanden) 
 +if [ -"$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>
  
synology/bash_script_fuer_snmp_zugriff_auf_usv_daten.txt · Zuletzt geändert: von dokuwikiadmin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki