Falls es einen interessiert: So Überwache ich die Nutzung der NVMe Disks in meinem Volume, damit ich frühzeitig bei 70% gewarnt werde ...
#!/bin/ash
# /usr/local/bin/nvme_check.sh
#
# /etc/ssmtp/ssmtp.conf
# /etc/ssmtp/revaliases
#
# Sendet Warnmail via ssmtp, wenn NVMe-Verschleiß >= THRESHOLD
PATH=/usr/sbin:/usr/bin:/sbin:/bin
THRESHOLD=70
HOST="$(hostname)"
TO="
webmaster@me-at.home"
FROM="
webmaster@me-at.home"
ALERT=0
MAX_VAL=-1
MAX_DEV=""
DETAILS=""
get_val() {
DEV="$1"
LINE="$(/sbin/nvme smart-log "$DEV" 2>/dev/null | grep -m1 'percentage_used')"
printf '%s\n' "$LINE" \
| sed -n 's/.*percentage_used[[:space:]]*:[[:space:]]*\([0-9]\{1,3\}\)%.*/\1/p'
}
check_dev() {
DEV="$1"
[ -e "$DEV" ] || return 0
VAL="$(get_val "$DEV")"
if [ -n "$VAL" ]; then
DETAILS="${DETAILS} ${DEV}: ${VAL}%"
if [ "$VAL" -gt "$MAX_VAL" ]; then
MAX_VAL="$VAL"
MAX_DEV="$DEV"
fi
if [ "$VAL" -ge "$THRESHOLD" ]; then
ALERT=1
fi
fi
}
# Beide NVMe-Geräte prüfen
check_dev /dev/nvme0
check_dev /dev/nvme1
if [ "$ALERT" -eq 1 ] && [ "$MAX_VAL" -ge 0 ]; then
SUBJECT="NVMe-Verschleißwarnung auf ${HOST}"
BODY="Warnung: Eine oder mehrere NVMe-SSDs haben >= ${THRESHOLD}% Abnutzung.
Höchster Wert: ${MAX_VAL}% auf ${MAX_DEV}
Details:${DETAILS}
"
# Nur ssmtp verwenden
{
printf "To: %s\n" "$TO"
printf "From: %s\n" "$FROM"
printf "Subject: %s\n" "$SUBJECT"
printf "\n%s\n" "$BODY"
} | /bin/ssmtp -t
fi
# /etc/ssmtp/ssmtp.conf
mailhub=smtp.deinprovider.tld:587
UseSTARTTLS=YES
AuthUser=
webmaster@me-at.home
AuthPass=DEIN_PASSWORT
FromLineOverride=YES
Hostname=ds920plus
# /etc/ssmtp/revaliases
root:
webmaster@me-at.home:smtp.deinprovider.tld:587
admin:
webmaster@me-at.home:smtp.deinprovider.tld:587
### dann chown root:root /usr/local/bin/nvme_check.sh und chmod 700 /usr/local/bin/nvme_check.sh und eine geplante Aufgabe erstellen ...