2011-10-03

dadv: (stopstupid)

Серверу под FreeBSD 8 нужно отдавать температуру CPU в градусах цельсия через SNMP. Команда sysctl -n dev.cpu.0.temperature выдаёт температуру с десятичными долями и буквой C в конце, для отдачи по SNMP в виде INTEGER будем по-простому отрезать разделитель и всё, что после него:

#!/bin/sh

PATH=/bin:/sbin:/usr/bin:/usr/sbin

cput="`sysctl -n dev.cpu.0.temperature`"
echo ${cput%%,*}

Запускаем вручную, проверяем, что выдаёт. Настраиваем bsnmpd с использованием его плагина bsnmp-ucd, чтобы вызывал наш скрипт и его вывод отдавал в виде OID внутри ветки enterprise - всё работает. Рисуем график через mrtg - рисуется.

Так работает несколько дней, после перезагрузки сервера график рисоваться перестаёт. Проверяем, запуская скрипт вручную - температуру показывает. Через SNMP данные не передаются, хотя до ребута передавались. Другие подобные OID, получаемые через запуск внешних скриптов из bsnmp-ucd, по-прежнему исправно отдаются.

Внимание, вопрос - что это было? Ответ напишу через пару дней, если никто не догадается.

Ответ )

Profile

dadv: (Default)
Choose your future

July 2024

M T W T F S S
12 34567
891011121314
15161718192021
22232425262728
293031    

Tags

Style Credit

Powered by Dreamwidth Studios