ventilátor-script -- ha nem automatikus

Fórumok

Sziasztok!

Hátha van másnak is problémája a hűtéssel...
Működik.

Lehet, hogy máshogy is meg lehet oldani, talán egyszerűbben is, de ez is jó:

#!/bin/bash

SENSOR_FILE="/proc/acpi/ibm/thermal"
FAN_CONTROL="/proc/acpi/ibm/fan"

# Kiolvasás
if [[ ! -f "$SENSOR_FILE" ]]; then
  echo "Nem található a szenzorfájl: $SENSOR_FILE"
  exit 1
fi

RAW=$(cat "$SENSOR_FILE")
VALUES=($(echo "$RAW" | grep -oE '[0-9]+'))

# Legmagasabb hőmérséklet keresése (konzervatív megközelítés)
MAX=0
for val in "${VALUES[@]}"; do
  if (( val > MAX )); then
    MAX=$val
  fi
done

echo "Legmagasabb észlelt hőmérséklet: $MAX°C"

# Ajánlás
if (( MAX < 60 )); then
  RECOMMENDED=2
elif (( MAX < 70 )); then
  RECOMMENDED=4
elif (( MAX < 75 )); then
  RECOMMENDED=5
else
  RECOMMENDED=7
fi

echo "Javasolt ventilátorszint: level $RECOMMENDED"

# Kézi bevitel 30 mp timeout-tal
read -t 30 -p "Add meg a kívánt ventilátorszintet (0-7) 30 másodpercen belül: " USER_LEVEL

if [[ $? -eq 0 ]]; then
  if [[ "$USER_LEVEL" =~ ^[0-7]$ ]]; then
    LEVEL=$USER_LEVEL
    echo "Felhasználó által megadott érték: $LEVEL"
  else
    LEVEL=$RECOMMENDED
    echo "Érvénytelen érték, a javasolt érték lesz használva: $LEVEL"
  fi
else
  LEVEL=$RECOMMENDED
  echo "Időtúllépés, a javasolt érték lesz használva: $LEVEL"
fi

# Beállítás
sudo sh -c "echo level $LEVEL > $FAN_CONTROL"

# Értékek kiíratása:
head -n 3 /proc/acpi/ibm/fan

Ezután mehet a crontabba...

Randa a kód, de működik.