HP77 a écrit:Bonjour,
J'ai créé le script /root/hddtemps que "Tranbert" a utilisé avec les permissions à 0700 (RWX pour 'root' seulement) dont le contenu est le suivant :
- Code: Tout sélectionner
#!/bin/bash
#### by HP77 - 2010-01-17 @ 08h17 GMT+0800 (SG) ####
#### http://groups.google.fr/group/alt.e-smith.fr/browse_thread/thread/1d98e05157c22ac/c2b5bfdfa904a6f2?lnk=gst&q=hddtemp# ####
## to to create this file under *root* user and to do a chmod 0700.
## smartctl -A $1 | grep 194 | awk '{print $10}' #by Tranbert because not so good!
smartctl -A $1 | grep "Temperature_Celsius" | awk '{print $10}'
Depuis le Shell, j'ai lancé la commande suivante sans aucun message d'erreur :
- Code: Tout sélectionner
[root@sme7.4 ~]# smartctl -A $1 | grep "Temperature_Celsius" | awk '{print $10}'
C'est normal, il n'a pas trouvé l'emplacement du disque dur.
comme l'a dit Gaston, il y a un passage d'argumment.
Le programme /root/hdtemps est appelé avec comme paramètre, le chemin du disque dur.
Pour lancer le programme en ligne de commande, il faut remplacer $1 par /dev/sda
smartctl -A /dev/sda | grep "Temperature_Celsius" | awk '{print $10}'
tu devrais avoir une réponse
En général les disques durs ide = /dev/hda et les disques durs sata = /dev/sda
Pour que cela fonctionne avec sme7admin, il faut modifier le progamme /usr/bin/sme7admind comme l'a indiqué tranbert.
tranbert a écrit:En gros pour ceux qui voudraient faire ça "au propre" voilà l'idéee :
Ligne 854 et suivantes de /usr/bin/sme7admind
On vire ce qui est défini, ca doit marcher aussi pour de l'IDE vu que
l'on bypasse hddtemp, en fait...
Ma commande c'est hddtemps avec un S(ben comme sata quoi)
-------------
if ($tag4 ne "")
{
$sensors_temp_hd1=`/root/hddtemps /dev/$tag4`;
$sensors_temp_hd1=~ s/\n//g;
}
Donc remplacer les lignes :
if ($tag4 ne "")
{
my @hddtemp=`/usr/sbin/hddtemp /dev/$tag4 2> /dev/null`;
foreach (@hddtemp)
{
#/dev/hda: ExcelStor Technology J680 : 39▒C ou ▒F
if (/\/dev\/$tag4:.*:\s+(\d+)▒C/o) {$sensors_temp_hd1=$1;}
}
}
if ($tag5 ne "")
{
my @hddtemp=`/usr/sbin/hddtemp /dev/$tag5 2> /dev/null`;
foreach (@hddtemp)
{
if (/\/dev\/$tag5:.*:\s+(\d+)▒C/) {$sensors_temp_hd2=$1;}
}
}
par
if ($tag4 ne "")
{
$sensors_temp_hd1=`/root/hddtemps /dev/$tag4`;
$sensors_temp_hd1=~ s/\n//g;
}
if ($tag5 ne "")
{
$sensors_temp_hd2=`/root/hddtemps /dev/$tag5`;
$sensors_temp_hd2=~ s/\n//g;
}
(je n'ai pas testé le code que je viens de mettre
=> je viens de tester avec disque dur ide => c'est ok, j'ai la température de mon disque hda
Anne




