1
0
mirror of https://github.com/librenms/librenms-agent.git synced 2024-05-09 09:54:52 +00:00
Robert Verspuy 8d856e2764 Improved hddtemp agent module
I had some issues with the netcat / daemon implementation of the module.
netcat was stallingor sometimes netcat did not return the full output of hddtemp.
Running hddtemp directly without running it as a daemon is much more stable for me.

This new version also does not give any stdout output when hddtemp is not installed or when no disks can be found.
Running the script manually on a server does give stderr output for easy debugging.
2016-05-05 10:27:30 +02:00

36 lines
1.0 KiB
Bash
Executable File

#!/bin/bash
# LibreNMS agent to read HDD/SDD temperature using hddtemp
#
# Copyright (c) 2016 Exa-Omicron <http://exa.nl>
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation, either version 3 of the License, or (at your
# option) any later version. Please see LICENSE.txt at the top level of
# the source code distribution for details.
#
# requires which, awk and sed
# If disks are missing, they can be added here:
disks="/dev/hd? /dev/sd?"
hddtemp=`which hddtemp 2>/dev/null`
if [ "${hddtemp}" != "" ]; then
if [ -x "${hddtemp}" ]; then
content=`${hddtemp} -q ${disks} 2>/dev/null | awk -F": " 'BEGIN{ ORS="" }{ print "|"$1"|"$2"|"$3"|";} ' | sed 's/°/\|/g';`
if [ "${content}" != "" ]; then
echo '<<<hddtemp>>>'
echo ${content}
echo
else
echo "no hddtemp compatible disks found" >&2
fi
else
echo "hddtemp not executable" >&2
fi
else
echo "hddtemp not installed" >&2
fi