Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/10/2013, à 18:06

toutafai

[Résolu] aide script surveillance temperature CPU

Bonjour a toutes et a tous,

EDITION : Problème résolut, un grand merci a tous ceux qui m'ont aidé !!! Je met le script a la fin de ce 1 er message. Il est parfaitement fonctionnel mais Il n'est certainement pas optimisé (normal, je débute et je rame),  donc si vous avez des suggestions/optimisations, n'hésitez pas.

Mon problème : J'ai upgradé mon portable avec un CPU plus puissant, depuis j'ai mon portable qui chauffe un peu de trop a mon goût. J'ai bien sur pris soin de remettre de la patte thermique (Artic Silver 3 pour les connaisseurs) et de nettoyer l'ensemble ventilo/radiateur. Ce qui n’empêche que je suis monté jusqu'a 83° hmm
L'acpi de mon portable (un Lenovo thinkpad r60) gère mal la température, il ne fait pas assez vite tourner le ventilo pour les "hautes" température.

Ce que je voudrais : avoir un script (qui se lance au démmarrage du pc) qui surveille la température et selon la température, qui augmente ou ralenti le ventilo en executant une commande

Actuellement je surveille le température(à la main) avec la commande "sudo acpi -t" qui me donne le résultat suivant :

Thermal 0: ok, 57.0 degrees C
Thermal 1: ok, 58.0 degrees C

Si la température est en dessous de 55°, je lance 

sudo echo level auto > /proc/acpi/ibm/fan

si la température est entre 55° et 60, je lance a la main un petit coup de

sudo echo level 5 > /proc/acpi/ibm/fan

Ce qui accélére un peu le ventilateur

si la température est entre 61° et 68, je lance a la main un petit coup de

sudo echo level 7 > /proc/acpi/ibm/fan

Ce qui accélère plus le ventilateur

Si cela passe au dessus des 68° (aie aie aie), je lance un

 sudo echo level full-speed  > /proc/acpi/ibm/fan

Ce qui pousse le ventilateur au max (j'ai un avion qui décolle a coté de moi, mais je préfère cela a un avion qui brûle ^^ )

Je ne pense pas que ce soit un script très compliqué a faire et si j'avais les connaissances pour le faire moi même, vous ne seriez pas entrain de lire ce message tongue

Mon CPU et moi-même vous remercie énormément par avance.
==========================================================================================================================

SOLUTION :

Script executé en tant qu'utilisateur (avec droits sudo) toutes le 60 secondes via une tâche cron

#! /bin/bash
###########################################
# Script de Monitoring du ventilateur CPU #
###########################################
#
# Les Variables
#
# tempcpu : La temperature du CPU mesurée à l'aide de la sonde
# level   : Niveau de ventilation avant l'execution du script
# lefelf  : Niveau de ventilation forcé par l'execution du script
#
#
###
# Initialisation des variables
read tempcpu < <(acpi -t| awk -F'[,% ] *' '{ print $4}')
level=$(awk '/^level:/{print $2}' /proc/acpi/ibm/fan)
###
# test temperature et réglage vitesse ventilateur en consequence
if [[ $tempcpu < 57 ]]
 then
  levelf=0
  echo level 0 > /proc/acpi/ibm/fan
elif [[ $tempcpu < 60 ]]
 then
  levelf=1  
  echo level 1 > /proc/acpi/ibm/fan
elif [[ $tempcpu < 65 ]]
 then
  levelf=3  
  echo level 3 > /proc/acpi/ibm/fan
elif [[ $tempcpu < 67 ]]
 then
  levelf=5  
  echo level 5 > /proc/acpi/ibm/fan
elif [[ $tempcpu < 70 ]]
 then
  levelf=7  
  echo level 7 > /proc/acpi/ibm/fan
else
  levelf=disengaged
  echo level full-speed  > /proc/acpi/ibm/fan
fi
###
# test es-ce la vitesse du ventilateur a été changée par script
if [[ $levelf != $level ]]  
 then
 ###
 # Si oui, affichage du message dans X
  case "$levelf" in 
       "0") zenity --info --text="Ventilation stopée" --timeout "2" --display=:0.0 ;;
       "1") zenity --info --text="Ventilation Niveau 1" --timeout "2" --display=:0.0 ;;
       "3") zenity --info --text="Ventilation Niveau 3" --timeout "2" --display=:0.0 ;;
       "5") zenity --info --text="Ventilation Niveau 5" --timeout "2" --display=:0.0 ;;
       "7") zenity --info --text="Ventilation Niveau 7" --timeout "2" --display=:0.0 ;;
       "disengaged") zenity --info --text="Ventilation Niveau Max" --timeout "2" --display=:0.0 ;;
  esac
fi

Dernière modification par toutafai (Le 19/11/2013, à 19:46)


Tombé dans l'informatique étant petit, j'en ai fait mon métier. Utilisateur d'Ubuntu depuis novembre 2006, actuellement sous 20.04 x64 (Que d'évolution
depuis Dapper Drake ! Ça rajeunit pas ^^^).

Hors ligne

#2 Le 29/10/2013, à 18:31

Shanx

Re : [Résolu] aide script surveillance temperature CPU

Salut

voilà un script fait vite fait (et non testé) :

#! /bin/bash

read state < <(acpi -t| awk -F'[,% ] *' '{ print $4}')

if [[ $state < 55 ]]
then
    echo level auto > /proc/acpi/ibm/fan
    
elif [[ $state < 61 ]]
then
    echo level 5 > /proc/acpi/ibm/fan
    
elif [[ $state < 69 ]]
then
    echo level 7 > /proc/acpi/ibm/fan
    
else
    echo level full-speed  > /proc/acpi/ibm/fan
fi

Pour le lancer, n’oublie pas de le rendre exécutable et de mettre sudo devant. Tu peux aussi le mettre dans ton cron, pour qu’il soit lancé automatiquement (par exemple toutes les minutes ou toutes les 5 minutes).

EDIT : le même script, mais en version incompréhensible big_smile

#! /bin/bash
[[ $state < 55 ]] && { echo level 5 > /proc/acpi/ibm/fan ;} || { [[ $state < 61 ]] && { echo level 5 > /proc/acpi/ibm/fan ;} || { [[ $state < 69 ]] && { echo level 7 > /proc/acpi/ibm/fan ;} || { [[ $state > 68 ]] && { echo level full-speed  > /proc/acpi/ibm/fan ;} ;} ;} ;}

Dernière modification par Shanx (Le 29/10/2013, à 18:34)


Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne

#3 Le 29/10/2013, à 18:52

toutafai

Re : [Résolu] aide script surveillance temperature CPU

Wahoo, rapide comme l'éclair, merci merci merci !!!

Je test cela ce soir (car la gosse, repas, douche, etc etc) et je te fait un retour

Ps : Juste un truc (désolé pour la question certainement bête mais bon ...quand on sait pas, ben on sait pas) le fait de le lancer avec sudo devant 'transmet" le droit sudo pour le commande contenu dans le script ? mais si je le lance via le cron il va pas me demander le mot de passe ?


Tombé dans l'informatique étant petit, j'en ai fait mon métier. Utilisateur d'Ubuntu depuis novembre 2006, actuellement sous 20.04 x64 (Que d'évolution
depuis Dapper Drake ! Ça rajeunit pas ^^^).

Hors ligne

#4 Le 29/10/2013, à 19:03

jplemoine

Re : [Résolu] aide script surveillance temperature CPU

J'avais un peu le même style (doit être fonctionnel) :

#! /bin/bash

temp=`acpi -t | awk '{print $4}' | awk -F. '{print $1}'` 

if [ $temp -lt 55 ] 
then
    $cmd = `echo level auto > /proc/acpi/ibm/fan`
    exit
fi

if [ $temp -lt 60 ]
then
    $cmd = `echo level 5 > /proc/acpi/ibm/fan`
    exit
fi

if  [ $temp -lt 68 ]
then
    $cmd = `echo level 7 > /proc/acpi/ibm/fan`
    exit
fi

$cmd = `echo level full-speed  > /proc/acpi/ibm/fan`

- pour le script, je pense que le fait de le lancer en sudo donne les bons droits si lancement manuel.
- si c'est dans le cron, c'est déjà lancé par root, donc pas besoin de sudo.

pour le script, on doit pouvoir faire mieux (paramétrage), mais il fait plus de temps...


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#5 Le 29/10/2013, à 21:18

toutafai

Re : [Résolu] aide script surveillance temperature CPU

@Shanx : bon, j'ai testé et j'approuve lol . Par contre je l'ai lancé à la main pour le moment (avec un sudo -s avant), pour le cron, es-ce que cela te parait bien cette méthode (je suis allé voir la doc car pas sur de moi, et je préfère avoir un avis)

sudo crontab -e

puis ajout de la ligne

*/1 * * * * /usr/bin/script-temp.sh

si j'ai bien compris :
1/ pas besoin de sudo puisque "crontab -e" ?
2/ cela va l'executer toutes les minutes ?
3/ sur qu'il faut pas rajouter sudo devant les commande du script ? (désolé d'insiter, pas envie de me rater sur ce coup)


@jplemoine : merci beaucoup pour ta participation

Dernière modification par toutafai (Le 29/10/2013, à 21:20)


Tombé dans l'informatique étant petit, j'en ai fait mon métier. Utilisateur d'Ubuntu depuis novembre 2006, actuellement sous 20.04 x64 (Que d'évolution
depuis Dapper Drake ! Ça rajeunit pas ^^^).

Hors ligne

#6 Le 29/10/2013, à 21:21

Shanx

Re : [Résolu] aide script surveillance temperature CPU

toutafai a écrit :

@Shanx : bon, j'ai testé et j'approuve

Cool. smile

sudo crontab -e

puis ajout de la ligne

*/1 * * * * /usr/bin/script-temp.sh

si j'ai bien compris :
1/ pas besoin de sudo puisque "crontab -e" ?
2/ cela va l'executer toutes les minutes ?

1/ Oui.
2/ Oui.


Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne

#7 Le 29/10/2013, à 22:08

nam1962

Re : [Résolu] aide script surveillance temperature CPU


[ Modéré ]

Hors ligne

#8 Le 29/10/2013, à 23:42

toutafai

Re : [Résolu] aide script surveillance temperature CPU

Le script marche pil poil, copié dans /usr/local/sbin et lancé auto via le crontab. Reste a voir dans le temps ce que cela donne.
Pour suivre tous cela, je me suis amusé a construire un log, histoire de tracé les actions de ce script, voila ce que cela donne (si cela peut servir à d'autres)

[b]EDITION : [/b] Script mis dans mon 1 er message pour une meilleure lecture

Dans quelque jours, je mettrais en place une purge de ce log à l'ouverture de session.

je passe le post en [résolu], encore un grand merci a vous tous !!

Dernière modification par toutafai (Le 19/11/2013, à 19:36)


Tombé dans l'informatique étant petit, j'en ai fait mon métier. Utilisateur d'Ubuntu depuis novembre 2006, actuellement sous 20.04 x64 (Que d'évolution
depuis Dapper Drake ! Ça rajeunit pas ^^^).

Hors ligne

#9 Le 30/10/2013, à 08:51

jplemoine

Re : [Résolu] aide script surveillance temperature CPU

Voir logrotate : Voir là
Si on active la compression, il suffit ensuite de purger de temps en temps, les 'qz'.
On garde le courant et celui d'avant, les autres sont en gz et seront purgés (soit manuellement soit en tâche cron).


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#10 Le 30/10/2013, à 11:07

toutafai

Re : [Résolu] aide script surveillance temperature CPU

merci jplemoine, purée cela me revient maintenand... il faut dire que mes cours linux date de plus de 10 ans roll

Dernière modification par toutafai (Le 30/10/2013, à 11:08)


Tombé dans l'informatique étant petit, j'en ai fait mon métier. Utilisateur d'Ubuntu depuis novembre 2006, actuellement sous 20.04 x64 (Que d'évolution
depuis Dapper Drake ! Ça rajeunit pas ^^^).

Hors ligne

#11 Le 17/11/2013, à 00:12

toutafai

Re : [Résolu] aide script surveillance temperature CPU

Bonsoir a tous,

Bon ce script tourne bien sans probleme jours, j'ai affiné les températures des déclenchement  bref, nickel il fait correctement le taff et le proc est meiux régulé en températures.
Il y a juste un truc qui me "gêne" c,'est ce que j'ai rajouté... moi, en tant que newbie du bash roll lol

echo -e 'Remis en auto a' $heure >> /var/log/log_script-temp.log

Cela me génère un fichier log un peu "imbuvable" du genre

23:40:02 Remis en auto
23:41:02 Remis en auto
23:42:02 Remis en auto
23:43:02 Remis en auto

j'aimerais plutôt avoir

23:46:02 Remis au niveau 3
23:53:02 Remis au niveau 5
23:59:02 Remis en auto

D'avance merci.

Dernière modification par toutafai (Le 17/11/2013, à 00:13)


Tombé dans l'informatique étant petit, j'en ai fait mon métier. Utilisateur d'Ubuntu depuis novembre 2006, actuellement sous 20.04 x64 (Que d'évolution
depuis Dapper Drake ! Ça rajeunit pas ^^^).

Hors ligne

#12 Le 17/11/2013, à 08:43

jplemoine

Re : [Résolu] aide script surveillance temperature CPU

il faut que tu lises l'état actuel : s'il est déjà au bon état, pas de changement et pas de log.

Pour la mise en auto (à adapter aux autres états), faire un truc du genre (non testé)

etat = `ls /proc/acpi/ibm/fan`
if [[ $etat ne 'auto' ]]
then
 heure=$(date +%T)
    echo level auto > /proc/acpi/ibm/fan
    echo -e 'Remis en auto a' $heure >> /var/log/log_script-temp.log
fi

Comme ça, s'il est déjà en auto, il ne fait rien et dans ton log, il n'y aura que les changements d'état.


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#13 Le 18/11/2013, à 20:30

toutafai

Re : [Résolu] aide script surveillance temperature CPU

cela ne marche pas..

le retour de cat /proc/acpi/ibm/fan me donne ceci :

status:		disabled
speed:		0
level:		0
commands:	level <level> (<level> is 0-7, auto, disengaged, full-speed)
commands:	enable, disable
commands:	watchdog <timeout> (<timeout> is 0 (off), 1-120 (seconds))

Il faut donc que je récupère dans une variable la valeur (celle au niveau de "level:   0" dans l'exemple du dessus, sachant que celle-ci peut aussi prendre les valeurs 0,1,3,5,7 mais aussi "auto" et "disengaged") ; afin de tester cette derniere avec la valeur que je souhaite appliquer, si elle est differente alors on exécute les commande de maj et de log...sinon on sort de la boucle.


Tombé dans l'informatique étant petit, j'en ai fait mon métier. Utilisateur d'Ubuntu depuis novembre 2006, actuellement sous 20.04 x64 (Que d'évolution
depuis Dapper Drake ! Ça rajeunit pas ^^^).

Hors ligne

#14 Le 18/11/2013, à 21:37

jplemoine

Re : [Résolu] aide script surveillance temperature CPU

oui. il faut peut-être essayer

cat /proc/acpi/ibm/fan level

Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#15 Le 19/11/2013, à 02:01

Postmortem

Re : [Résolu] aide script surveillance temperature CPU

Salut,
Pour récupérer la valeur level dans /proc/acpi/ibm/fan (ce fichier n'existe pas chez moi donc je me suis basé sur ce que tu as mis en #13) :

MY_LEVEL=$(awk '/^level:/{print $2}' /proc/acpi/ibm/fan)

Dernière modification par Postmortem (Le 19/11/2013, à 12:20)


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#16 Le 19/11/2013, à 12:17

toutafai

Re : [Résolu] aide script surveillance temperature CPU

@Postmortem : Bonjour et merci a toi, c'est pile poil ;-) ce qu'il me fallait...je peux replonger dedans ;-)


Tombé dans l'informatique étant petit, j'en ai fait mon métier. Utilisateur d'Ubuntu depuis novembre 2006, actuellement sous 20.04 x64 (Que d'évolution
depuis Dapper Drake ! Ça rajeunit pas ^^^).

Hors ligne

#17 Le 19/11/2013, à 19:54

toutafai

Re : [Résolu] aide script surveillance temperature CPU

Sujet Re Résolu, merci a tous.

PS : J'ai édité mon 1 er message avec la solution... si vous voulez vous rappeler vos 1 ers bash ;-) j'attends d'avance en retour vos taquineries justifiées et méritées  lol


Tombé dans l'informatique étant petit, j'en ai fait mon métier. Utilisateur d'Ubuntu depuis novembre 2006, actuellement sous 20.04 x64 (Que d'évolution
depuis Dapper Drake ! Ça rajeunit pas ^^^).

Hors ligne

#18 Le 19/11/2013, à 21:03

Olivier_Dev

Re : [Résolu] aide script surveillance temperature CPU

Bonsoir

interessant, en revanche comment faire lorsque acpi n'est pas installé ?
et que /proc/acpi/ibm/fan n'éxiste pas ?

pour ma part les infos temperature se trouvent dans  /sys/class/hwmon/hwmon0/, dans quel fichier systeme ecrire pour activer le ventilateur ?

merci d'avance

Hors ligne

#19 Le 19/11/2013, à 22:00

toutafai

Re : [Résolu] aide script surveillance temperature CPU

Oui, cette solutions est spécifique au portable IBM Thinkpad
pour les outils acpi :

sudo apt-get install acpi

pour le fichier (dans mon cas) /proc/acpi/ibm/fan la aussi c'est spécifiques au ibm, mais c'est courant de trouver (pas forcement le meme nom et/ou le meme chemin) cela chez d'autre construcyteur de pc, en fait cela depend de sa gestion acpi. Dans mon cas, j'avais trouvé cette info en vouillant un peu la doc sur la gestion des ventilo et de la temperature cpu, une piste a creuser en cherchant avec la marque modele de ton pc.


Tombé dans l'informatique étant petit, j'en ai fait mon métier. Utilisateur d'Ubuntu depuis novembre 2006, actuellement sous 20.04 x64 (Que d'évolution
depuis Dapper Drake ! Ça rajeunit pas ^^^).

Hors ligne