MRTG marche à moitié

diffy -  
 diffy -
Bonjour,

J'ai fait un script mrtg pour la température cpu. Je l'ai copié sur un modèle de script qui fonctionne, cependant mrtg m'affiche une valeur 0 en continue pour ma température de cpu. Ci dessous quelques infos, si vous trouvez pourquoi ca marche pas, merci de m'aider :)

s310b:/etc/mrtg# ls -l
total 12
-rwxr-xr-x 1 root root 219 2009-01-03 11:15 cpu.pl
-rwxr-xr-x 1 root root 136 2009-01-03 12:47 temp.pl
-rwxr-xr-x 1 root root 125 2009-01-02 09:03 uptime.pl

s310b:/etc/mrtg# ./uptime.pl
17
17
s310b:/etc/mrtg# ./temp.pl
28
28
s310b:/etc/mrtg# ./cpu.pl
4301651
4301651

Title[temp]: CPU Temperature
XSize[temp]: 550
YSize[temp]: 200
PageTop[temp]: <H1>CPU Temperature</H1>
Target[temp]: `/etc/mrtg/temp.pl`
MaxBytes[temp]: 2000
Options[temp]: growright,unknaszero,nopercent,gauge,noinfo
LegendI[temp]:
LegendO[temp]: CPU Temperature:
YLegend[temp]: C
ShortLegend[temp]: C

Title[localuptime]: Uptime
XSize[localuptime]: 550
YSize[localuptime]: 200
PageTop[localuptime]: <H1>Uptime</H1>
Target[localuptime]: `/etc/mrtg/uptime.pl`
MaxBytes[localuptime]: 2000
Options[localuptime]: growright,unknaszero,nopercent,gauge,noinfo
LegendI[localuptime]:
LegendO[localuptime]: Uptime:
YLegend[localuptime]: Days
ShortLegend[localuptime]: Days

s310b:/etc/mrtg# env LANG=C /usr/bin/mrtg
s310b:/etc/mrtg#

L'uptime fonctionne, la température est à 0 en continu
Si je met en Target uptime.pl dans la partie température, le graphe de temérature me trace l'uptime correctement
J'en déduis donc que le problème viens de mon script temp.pl
mais en console il semble fournir le bon output ...

Merci d'avance
Diffy

1 réponse

diffy
 
J'oubliais, le contenu des scripts :

s310b:/etc/mrtg# cat temp.pl
#!/usr/bin/perl

$temp = `sensors | grep temp`;

$temp =~ / \+(.*)°C /;
$tmp = int($1);

print "$tmp\n";
print "$tmp\n";
#print "0\n";

s310b:/etc/mrtg# cat uptime.pl
#!/usr/bin/perl

$uptime = `uptime`;

$uptime =~ /up (.*?) day/;
$up = int($1);

print "$up\n";
print "$up\n";
#print "0\n";
0
diffy
 
s310b:/etc/mrtg# cat temp.sh
#!/bin/bash

echo `sensors | grep temp: | sed -e 's/\(.*\)\(\+[0-9][0-9]\.\)\(.*\)/\2/' | sed -e 's/+//' | sed -e 's/\.//'`;
echo `sensors | grep temp: | sed -e 's/\(.*\)\(\+[0-9][0-9]\.\)\(.*\)/\2/' | sed -e 's/+//' | sed -e 's/\.//'`;

j'ai remplacé mon script perl par un script bash et là ca marche semble-t-il

mais quand meme si qqun peu me dire pourquoi le perl a pas marché ca m'interesse :)

++
Diffy
0