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.
- 193 megtekintés