Получить температуру процессора

Для получения температуры процессора на локальном компьютере, под управлением линукс, откройте консоль и наберите команду: $ sensors Для получения температуры на удаленном сервере или на удаленном компьютере, необходимо выпольнить некоторые действия. На локальном компьютере, необходимо установить ssh: $ sudo apt install ssh После устаноки ssh, создадим шифрованный ключ: $ ssh-keygen -t rsa -b 4096 На предложение создать пароль, ответьте отрицательно. В большинстве случаев, просто несколько раз нажмите на 'Enter', пока вся процедура создания ключа не закончится. Предположим, что у нас есть удаленный сервер с параметрами: host(ip адрес сервера): 192.168.1.13 port для связи по ssh: 13333 login: user Далее по тексту, подставьте свои данные. Передадим шифрованный ключ на удаленный сервер: $ ssh-copy-id user@192.168.1.13 -p 13333 При передаче ключа на удаленный сервер введите ПАРОЛЬ СЕРВЕРА. Шифрованный ключ, позволит заходить на удаленный сервер без пароля. Это способ входа на сервер является более безопасным, чем передача пароля. На удаленном сервере необходимо установить программу lm_sensors. Заходим на сервер по ssh: $ ssh -p 13333 user@192.168.1.13 server$ sudo apt install lm_sensors server$ exit Теперь по ssh можно считать температуру сервера используя формат команды: $ ssh -p 13333 user@192.168.1.13 'sensors' Для того, что бы не набирать каждый раз длинную команду, можно написать скрипт на питоне и положить его в основную директорию. Создадим файл temperature.py и вызовем для редактирования: $ sudo nano temperature.py Скопируйте ниже приведенный пример программы в созданный файл temperature.py Ctrl+V - вставить данные из буфера Ctrl+O затем Enter - записать содержимое файла на диск Ctrl+X - выйти из редактора Пример программы:
#!/usr/bin/env python3
# -*- encoding: utf-8 -*-

import os
import subprocess


def get_cpu_temperature_by_ssh():
    user = 'user'
    host = '192.168.1.13'
    port = '13333'
    command = ['ssh', '-p', port, user + '@' + host, 'sensors']
    try:
        subprocess.check_output(['ping', '-c', '1', host], timeout=1)
    except:
        print('{} {}@{} -p {}'.format('Error: No host', user, host, port))
        os._exit(1)
    try:
        subprocess.call(command, timeout=1)
    except:
        print('{}'.format('Error: incorrect parameters'))


if __name__ == '__main__':
    get_cpu_temperature_by_ssh()
Запустить программу: $ python3 temperature.py Если сервер не будет подключен к сети, то программа выдаст ошибку: Error: No host user@192.168.1.13 -p 13333 Если сервер подключен, но вы ошиблись в написании порта или другие ошибки, то программа ответит: Error: incorrect parameters У кого есть сервер на базе платы Raspberry PI, то возникает необходимость мониторить температуру процессора на случай перегрева. Сам принцип может быть применим и к любому другому файл-серверу. Исходник можно скопировать по ссылке: https://github.com/dantalian-pv/useful-shell-scripts/blob/master/temperature.sh Описание программы 'temperature.sh': Скрипт проверяет температуру процессора малины PI и отправляет уведомление GUI на рабочую станцию администратора, если температура выше заданного значения $THRESHOLD Формат температуры NN.NNN °C целое число без точки Требования: 1. Вход ssh на рабочую станцию администратора без пароля 2. Установлены KDE или libnotify-tools / libnotify-bin Запустить программу 'temperature.sh': 1. Скрипт необходимо разместить на стороне сервера. 2. Сделать этот скрипт исполняемым с помощью 'chmod +x temperature.sh' 3. Добавьте скрипт в 'crontab' для выполнения каждую минуту: */1 * * * * user /path/to/temperature.sh Доступ к Raspberry Pi 3 через SSH: Для получения доступа к Raspberry Pi 3 по протоколу SSH нужно открыть инструмент конфигурации raspi-config: $sudo raspi-config Выбрать в нем Interfacing Options и включить SSH. Обращаться по ssh к Raspberry Pi можно по порту 22, его менять не нужно.