#!/bin/bash OUT="/docker/monitoring/node_exporter/textfile_collector/smart_selftest.prom" > "$OUT" 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)}') # 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 "smart_last_selftest_poweron_hours{device=\"$name\"} $LAST" >> "$OUT" done