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