Рассмотрим пример который позволит отслеживать температуру процессора вашего Сервера, ПК или Майнинг фермы на Linux.
Что нам потребуется:
Добавление и настройка устройства:
Настройка программ.
Для отправки данных будем использовать «cURL», а для получения данных об температуре процессора будем использовать пакет «lm_sensors».
Обычно, пакеты «cURL» и «lm_sensors» уже предустановлен в большинстве систем и сконфигурирован для работы. Но если в вашей системе их нет, то программы не так сложно установить.
sudo yum install lm_sensors curl
sudo apt-get install lm-sensors curl
Когда установка будет завершена, нам необходимо выполнить настройку, чтобы определить все сенсоры, подключенные к системе. Для этого выполните:
> sudo sensors-detect
Утилита sensors-detect пытается найти все установленное оборудование и загрузить рекомендованные для него модули ядра. В большинстве случаев вам будет достаточно нажимать кнопку Enter в ответ на все вопросы программы, тем самым давая ответы по умолчанию.
Настройка завершена и теперь можно перейти к просмотру доступной температуры. Для этого наберите:
> sudo sensors
В ответ получите примерно такой текст:
coretemp-isa-0000 Adapter: ISA adapter Physical id 0: +29.0°C (high = +80.0°C, crit = +100.0°C) Core 0: +23.0°C (high = +80.0°C, crit = +100.0°C) Core 1: +26.0°C (high = +80.0°C, crit = +100.0°C) Core 2: +24.0°C (high = +80.0°C, crit = +100.0°C) Core 3: +24.0°C (high = +80.0°C, crit = +100.0°C)
Проверка команд.
Для того чтобы отправлять значение на сервер нам для начала надо вытащить нужное значение с данных строк для этого воспользуемся командой grep для фильтрации значений команды sensors. Пример команды на получения температуры «Core 0»:
sensors | grep -Eo '^Core 0: +\+[0-9]+\.[0-9]+' | grep -Eo '\+[0-9]+\.[0-9]+'
Для отправки HTTP GET запросов будем использовать CURL. Пример команды с запросом:
curl --silent "https://VizIoT.com/update?key=______________&pass=______________&temp=28" > /dev/null
Теперь напишем скрипт, который будет отправлять на сервер информацию о температуре процессора и его ядер.
Создания скрипта.
Создадим скрипт используя текстовый редактор
> nano /var/viziot.sh
Содержание скрипта:
key='_____________' pass='_________________' phys0=$(sensors | grep -Eo '^Physical id 0: +\+[0-9]+\.[0-9]+' | grep -Eo '[0-9]+\.[0-9]+') core0=$(sensors | grep -Eo '^Core 0: +\+[0-9]+\.[0-9]+' | grep -Eo '[0-9]+\.[0-9]+') core1=$(sensors | grep -Eo '^Core 1: +\+[0-9]+\.[0-9]+' | grep -Eo '[0-9]+\.[0-9]+') core2=$(sensors | grep -Eo '^Core 2: +\+[0-9]+\.[0-9]+' | grep -Eo '[0-9]+\.[0-9]+') core3=$(sensors | grep -Eo '^Core 3: +\+[0-9]+\.[0-9]+' | grep -Eo '[0-9]+\.[0-9]+') curl --silent "https://viziot.com/update?key=$key&pass=$pass&phys0=$phys0&core0=$core0&core1=$core1&core2=$core2&core3=$core3" > /dev/null
Чтобы скрипт можно было выполнить ему надо дать права на выполнения
> chmod +x /var/viziot.sh
Для ежеминутной отправки будем использовать демон cron. Запустим редактор cron
> crontab -e
И в самый конец добавим строку, которая будет запускать скрипт «/var/viziot.sh» каждую минуту:
0-59 * * * * /var/viziot.sh
Добавления виджета:
Теперь вы все настроили и осталось дождаться отправки данных на сервер.