Как проверить температуру процессора в Linux

Иван Корнев·03.05.2026·4 мин

Чтобы быстро узнать температуру процессора в Linux, используйте утилиту sensors из пакета lm-sensors или считайте данные напрямую из файловой системы /sys/class/thermal. Для большинства дистрибутивов достаточно установить пакет lm-sensors, запустить автонастройку командой sudo sensors-detect и выполнить sensors для вывода показаний всех датчиков.

Контроль температурного режима критически важен для предотвращения троттлинга (снижения частоты при перегреве) и продления срока службы оборудования. В этой статье разберем надежные способы мониторинга: от быстрых команд в терминале до настройки графических индикаторов.

Подготовка: установка и настройка lm-sensors

Утилита lm-sensors — стандарт де-факто для чтения данных с аппаратных датчиков в Linux. Она поддерживает большинство современных материнских плат и процессоров (Intel и AMD).

Установка пакета

Команды зависят от вашего дистрибутива:

  • Debian / Ubuntu / Mint:
    sudo apt update
    sudo apt install lm-sensors
    ```
*   **Fedora / RHEL / CentOS:**
    
```bash
    sudo dnf install lm_sensors
    ```
*   **Arch Linux / Manjaro:**
    
```bash
    sudo pacman -S lm_sensors
    ```

### Настройка датчиков

После установки необходимо просканировать оборудование и загрузить нужные модули ядра. Выполните команду:


```bash
sudo sensors-detect

Скрипт задаст несколько вопросов. Для безопасности и простоты на все вопросы можно отвечать «Yes» (или просто нажимать Enter, если ответ по умолчанию положительный). В конце скрипт предложит добавить модули в автозагрузку — согласитесь.

Если вы не хотите перезагружаться, загрузите модули вручную командой, которую выдаст sensors-detect в конце работы (обычно это service kmod start или перечисление модулей через modprobe).

Способ 1: Просмотр температуры в терминале (sensors)

После настройки выполните простую команду:

sensors

Вы увидите подробный отчет. Ищите секции, связанные с процессором (часто они называются coretemp, k10temp для AMD или nct6775 для супервизоров на материнской плате).

Пример вывода для Intel:

coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +45.0°C  (high = +80.0°C, crit = +100.0°C)
Core 0:        +42.0°C  (high = +80.0°C, crit = +100.0°C)
Core 1:        +44.0°C  (high = +80.0°C, crit = +100.0°C)
  • Package id: Общая температура процессора.
  • Core X: Температура конкретного ядра.
  • high/crit: Пороговые значения, при которых срабатывает защита.

Фильтрация вывода

Если информации слишком много, отфильтруйте только данные о ядрах:

sensors | grep -E "Core|Package"

Для вывода только текущих значений без порогов удобно использовать awk:

sensors | grep "Core" | awk '{print $1, $3}'

Способ 2: Чтение данных через sysfs (без установки программ)

В ядре Linux данные с термодатчиков доступны в виртуальной файловой системе sysfs. Этот метод работает «из коробки» в большинстве современных дистрибутивов и идеален для легких скриптов.

Данные хранятся в файлах /sys/class/thermal/thermal_zone*/temp. Значения указаны в миллиградусах Цельсия (например, 45000 = 45.0°C).

Чтобы вывести температуру всех зон в читаемом виде:

for zone in /sys/class/thermal/thermal_zone*; do
  type=$(cat $zone/type)
  temp=$(cat $zone/temp)
  echo "$type: $(($temp / 1000))°C"
done

Зоны thermal_zone могут относиться не только к CPU, но и к чипсету, GPU или аккумулятору ноутбука. Ориентируйтесь на названия типов (например, x86_pkg_temp или acpitz).

Способ 3: Графический мониторинг (Psensor)

Для десктопных пользователей удобны приложения с визуализацией графиков и уведомлениями. Одно из лучших решений — Psensor.

Установка и запуск

  • Ubuntu/Debian: sudo apt install psensor
  • Fedora: sudo dnf install psensor

После запуска Psensor автоматически определит доступные датчики (требуется установленный lm-sensors).

Преимущества:

  • График изменения температуры в реальном времени.
  • Отображение температуры в системном трее.
  • Настройка оповещений: программа может показать уведомление или воспроизвести звук, если температура превысит заданный лимит (например, 85°C).

Автоматизация: скрипт для проверки перегрева

Если вам нужно периодически проверять температуру и получать предупреждение только при опасном нагреве, используйте простой bash-скрипт.

Создайте файл check_temp.sh:

#!/bin/bash

# Максимально допустимая температура
MAX_TEMP=80

# Получаем максимальную температуру среди всех ядер
CURRENT_TEMP=$(sensors | grep "Core" | awk '{print $3}' | sed 's/+//' | sed 's/°C//' | sort -n | tail -1)

# Округляем до целого
CURRENT_TEMP_INT=${CURRENT_TEMP%.*}

if [ "$CURRENT_TEMP_INT" -ge "$MAX_TEMP" ]; then
  echo "ВНИМАНИЕ: Высокая температура CPU! ${CURRENT_TEMP}°C"
  # Здесь можно добавить отправку уведомления, например:
  # notify-send "Перегрев CPU" "Температура: ${CURRENT_TEMP}°C"
else
  echo "Температура в норме: ${CURRENT_TEMP}°C"
fi

Не забудьте сделать скрипт исполняемым: chmod +x check_temp.sh. Его можно добавить в cron для проверки каждые 5 минут.

Частые ошибки и проблемы

ПроблемаПричина и решение
Показания 0°C или отсутствуютДатчики не определены. Перезапустите sudo sensors-detect и убедитесь, что модули загружены. Проверьте `dmesg
Неверные значения (например, -127°C)Конфликт драйверов или неподдерживаемое оборудование. Попробуйте обновить ядро (uname -r) или исключите лишние модули в конфигурации lm-sensors.
Разница показаний в разных утилитахРазные утилиты могут читать разные физические датчики (ядро vs корпус). Ориентируйтесь на Package id или максимальное значение среди ядер.
Нет прав доступа к /sys/...Обычно чтение открыто для всех, но запись ограничена. Если скрипт не работает, проверьте права доступа, хотя для cat они редко требуются.

FAQ

Какая температура считается нормальной для процессора в Linux? В простое (idle) нормальная температура составляет 30–45°C. Под нагрузкой (игры, рендеринг) до 70–80°C является допустимой для большинства современных CPU. Критической обычно считается температура выше 90–100°C, когда начинается троттлинг.

Можно ли проверить температуру видеокарты теми же командами? lm-sensors иногда показывает температуру GPU, если она интегрирована в процессор (iGPU). Для дискретных видеокарт NVIDIA используйте nvidia-smi, для AMD — radeontop или sensors (если поддерживается драйвером amdgpu).

Почему sensors показывает температуру ниже, чем в BIOS? В BIOS нагрузка на процессор минимальна, но методы измерения могут отличаться. Также в Linux данные обновляются динамически. Разница в 2–5 градусов допустима. Если разница огромна, проверьте версию микрокода процессора и обновление BIOS.

Как узнать температуру на сервере без GUI? Используйте sensors в сочетании с системами мониторинга вроде Zabbix, Prometheus (node_exporter собирает данные из /sys/class/thermal) или простыми скриптами логирования в текстовый файл.