#!/bin/bash # Loop through all hard drives and read their temperatures for DEVICE in /dev/sd[a-z]; do # Check if the device is a disk (not a partition) if [ -b "$DEVICE" ]; then # Get the temperature from smartctl TEMPERATURE=$(/usr/sbin/smartctl -A $DEVICE | grep "Temperature_Celsius" | awk '{print $10}') # If the temperature is not empty, push it to Ganglia using gmetric if [ -n "$TEMPERATURE" ]; then gmetric --name ${DEVICE##*/}_temp --value $TEMPERATURE --type float --units C --group=sensors fi fi done