#!/bin/sh PATH= SLEEP=/bin/sleep DOAS=/usr/local/bin/doas AWK=/usr/bin/awk SYSCTL=/sbin/sysctl SMARTCTL=/usr/local/sbin/smartctl HOSTNAME="${COLLECTD_HOSTNAME:-localhost}" INTERVAL="${COLLECTD_INTERVAL:-120}" AWKOPTS="-v interval=${INTERVAL} -v host=${HOSTNAME}" while true; do $SYSCTL -e dev.cpu \ | $AWK ${AWKOPTS} -F '[.=]' '/temperature/ {printf "PUTVAL %s/thermal/temperature-cpu%s interval=%s N:%d\n", host, $3, interval, int($5)}' $SYSCTL -e hw.acpi.thermal \ | $AWK ${AWKOPTS} -F "[.=]" '/temperature/ {printf "PUTVAL %s/thermal/temperature-%s interval=%s N:%d\n", host, $4, interval, int($6)}' for i in $($SYSCTL -n kern.disks | $AWK '{for (i=NF; i!=0 ; i--) if(match($i, '/ada/')) print $i }' ); do $DOAS $SMARTCTL -a -n standby /dev/$i \ | $AWK ${AWKOPTS} -v disk=$i '/Temperature_Celsius/ {printf "PUTVAL %s/thermal/temperature-%s interval=%s N:%s\n", host, disk, interval, $10}' done $SLEEP $INTERVAL done