From 044fbd81addd47cf307bc43c7d32565fd406fc83 Mon Sep 17 00:00:00 2001 From: Lucas Media Date: Mon, 12 Oct 2026 19:44:57 +0000 Subject: [PATCH] working smartmon node exporter script for sd/nvme --- network/node-exporter-smartmon.sh | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/network/node-exporter-smartmon.sh b/network/node-exporter-smartmon.sh index eca36e6..3baf5f5 100755 --- a/network/node-exporter-smartmon.sh +++ b/network/node-exporter-smartmon.sh @@ -6,17 +6,26 @@ OUT="/docker/monitoring/node_exporter/textfile_collector/smart_selftest.prom" for dev in $(smartctl --scan-open | awk '{print $1}'); do name=$(basename "$dev") - LAST=$(smartctl -l selftest "$dev" 2>/dev/null \ - | grep "Completed" \ - | head -1 \ - | awk '{print $(NF-1)}') - + LAST=0 + if [[ "$dev" == *nvme* ]]; then +# POWER_ON=$(smartctl -a "$dev" | awk -F': *' '/Power On Hours:/ {print $2}') + LAST=$(smartctl -l selftest "$dev" 2>/dev/null \ + | grep "Completed" \ + | head -1 \ + | awk '{print $(NF-5)}') + elif [[ "$dev" == *sd* ]]; then +# POWER_ON=$(smartctl -a "$dev" | awk '/Power_On_Hours/ {print $10}') + LAST=$(smartctl -l selftest "$dev" 2>/dev/null \ + | grep "Completed" \ + | head -1 \ + | awk '{print $(NF-1)}') + else + POWER_ON=99999999999 + echo $dev + fi + # Skip devices without self-test history - if [[ "${LAST}" == "-" ]]; then - HOURS=$(smartctl -a "$DEV" 2>/dev/null | awk '/Power_On_Hours/ {print $10}') - LAST=${HOURS:- -1} - fi - echo $name: $LAST + echo $name: ${LAST} echo "smart_last_selftest_poweron_hours{device=\"$name\"} $LAST" >> "$OUT" done