]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - html/cgi-bin/hardwaregraphs.cgi
Einige CGI Fixes
[people/pmueller/ipfire-2.x.git] / html / cgi-bin / hardwaregraphs.cgi
index ad3ff59dc1ad7e7083b447fcf4ed68a8d78d69f6..478bf9c387822a9998bbc25719aaddc0ba5d7b2b 100644 (file)
 use strict;
 
 # enable only the following on debugging purpose
-# use warnings;
-# use CGI::Carp 'fatalsToBrowser';
+ use warnings;
+ use CGI::Carp 'fatalsToBrowser';
 
 require '/var/ipfire/general-functions.pl';
 require "${General::swroot}/lang.pl";
 require "${General::swroot}/header.pl";
+require "${General::swroot}/graphs.pl";
+
+my %color = ();
+my %mainsettings = ();
+&General::readhash("${General::swroot}/main/settings", \%mainsettings);
+&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", \%color);
 
 my %cgiparams=();
 my @cgigraphs=();
-my @graphs=();
 
 &Header::showhttpheaders();
 
 my $graphdir = "/srv/web/ipfire/html/graphs";
 
+my @disks = `kudzu -qps -c HD | grep device: | cut -d" " -f2 | sort | uniq`;
+foreach (@disks){
+  my $disk = $_;
+  chomp $disk;
+  &Graphs::updatehddgraph ($disk,"day");
+}
+
+  &Graphs::updatetempgraph ("day");
+  &Graphs::updatefangraph ("day");
+  &Graphs::updatevoltgraph ("day");
+
+my @graphs=();
+
 &Header::getcgihash(\%cgiparams);
 
 $ENV{'QUERY_STRING'} =~ s/&//g;
@@ -95,13 +113,58 @@ foreach $key ( sort(keys %mbmon_values) )
 #  print "$line = $cgiparams{$line}<br />\n";
 #  $debugCount++;
 #}
-#print "&nbsp;Count: $debugCount\n";
+#print "&nbsp;Count: $debugCount<br />\n";
+#print "&nbsp;CGIParams: $cgigraphs[1]\n"; 
 #&Header::closebox();
 # DEBUG DEBUG
 ###############
 
-if ($cgigraphs[1] =~ /(temp|fan|volt)/) 
+if ($cgigraphs[1] =~ /hddtemp/) 
 {
+  my $graph = $cgigraphs[1];
+  my $graphname = $Lang::tr{"harddisk temperature"};
+  &Header::openbox('100%', 'center', "$graphname $Lang::tr{'graph'}");
+
+    if (-e "$graphdir/${graph}-day.png")
+     {
+      my $ftime = localtime((stat("$graphdir/${graph}-day.png"))[9]);
+      print "<center>";
+      print "<b>$Lang::tr{'the statistics were last updated at'}: $ftime</b></center><br /><hr />\n";
+      print "<img src='/graphs/${graph}-day.png' border='0' /><hr />";
+      print "<img src='/graphs/${graph}-week.png' border='0' /><hr />";
+      print "<img src='/graphs/${graph}-month.png' border='0' /><hr />";
+      print "<img src='/graphs/${graph}-year.png' border='0' />";
+      if ( -e "/var/log/smartctl_out_${graph}" ) 
+      {
+        my $output = `/bin/cat /var/log/smartctl_out_${graph}`;
+        $output = &Header::cleanhtml($output);
+        print "<hr><table border=0><tr><td align=left><pre>$output</pre></table>\n";
+      }
+    }
+    else 
+    {
+      print $Lang::tr{'no information available'};
+    }
+  &Header::closebox();
+  print "<div align='center'><table width='80%'><tr><td align='center'>";
+  print "<a href='/cgi-bin/hardwaregraphs.cgi'>";
+  print "$Lang::tr{'back'}</a></td></tr></table></div>\n";
+}
+elsif ($cgigraphs[1] =~ /(temp|fan|volt)/) 
+{
+if ($cgigraphs[1] =~ /temp/) {&Graphs::updatetempgraph ("week");&Graphs::updatetempgraph ("month");&Graphs::updatetempgraph ("year");}
+if ($cgigraphs[1] =~ /fan/) {&Graphs::updatefangraph ("week");&Graphs::updatefangraph ("month");&Graphs::updatefangraph ("year");}
+if ($cgigraphs[1] =~ /volt/) {&Graphs::updatevoltgraph ("week");&Graphs::updatevoltgraph ("month");&Graphs::updatevoltgraph ("year");}
+if ($cgigraphs[1] =~ /hddtemp/){
+          my @devices = `kudzu -qps -c HD | grep device: | cut -d" " -f2 | sort | uniq`;
+
+          foreach (@devices) {
+                my $device = $_;
+                chomp($device);
+            &Graphs::updatehddgraph ($device,"week");
+            &Graphs::updatehddgraph ($device,"month");
+            &Graphs::updatehddgraph ($device,"year");}}
+
   my $graph = $cgigraphs[1];
   my $graphname = $Lang::tr{"mbmon $cgigraphs[1]"};
   &Header::openbox('100%', 'center', "$graphname $Lang::tr{'graph'}");
@@ -122,38 +185,7 @@ if ($cgigraphs[1] =~ /(temp|fan|volt)/)
   }
   &Header::closebox();
   print "<div align='center'><table width='80%'><tr><td align='center'>";
-  print "<a href='/cgi-bin/mbmongraph.cgi'>";
-  print "$Lang::tr{'back'}</a></td></tr></table></div>\n";
-}
-elsif ($cgigraphs[1] =~ /(hdd)/) 
-{
-  my $graph = $cgigraphs[1];
-  my $graphname = $Lang::tr{"harddisk temperature"};
-  &Header::openbox('100%', 'center', "$graphname $Lang::tr{'graph'}");
-
-    if (-e "$graphdir/hddtemp-day.png")
-     {
-      my $ftime = localtime((stat("$graphdir/hddtemp-day.png"))[9]);
-      print "<center>";
-      print "<b>$Lang::tr{'the statistics were last updated at'}: $ftime</b></center><br /><hr />\n";
-      print "<img src='/graphs/hddtemp-day.png' border='0' /><hr />";
-      print "<img src='/graphs/hddtemp-week.png' border='0' /><hr />";
-      print "<img src='/graphs/hddtemp-month.png' border='0' /><hr />";
-      print "<img src='/graphs/hddtemp-year.png' border='0' />";
-      if ( -e "/var/log/hddgraph_smartctl_out" ) 
-      {
-        my $output = `/bin/cat /var/log/hddgraph_smartctl_out`;
-        $output = &Header::cleanhtml($output);
-        print "<hr><table border=0><tr><td align=left><pre>$output</pre></table>\n";
-      }
-    }
-    else 
-    {
-      print $Lang::tr{'no information available'};
-    }
-  &Header::closebox();
-  print "<div align='center'><table width='80%'><tr><td align='center'>";
-  print "<a href='/cgi-bin/mbmongraph.cgi'>";
+  print "<a href='/cgi-bin/hardwaregraphs.cgi'>";
   print "$Lang::tr{'back'}</a></td></tr></table></div>\n";
 }
 else 
@@ -165,7 +197,7 @@ else
     {
       my $ftime = localtime((stat("$graphdir/mbmon-temp-day.png"))[9]);
       print "<center><b>$Lang::tr{'the statistics were last updated at'}: $ftime</b></center><br />\n";
-      print "<a href='/cgi-bin/mbmongraph.cgi?graph=temp'>";
+      print "<a href='/cgi-bin/hardwaregraphs.cgi?graph=temp'>";
       print "<img src='/graphs/mbmon-temp-day.png' border='0' />";
       print "</a>";
     }
@@ -184,7 +216,7 @@ else
     {
       my $ftime = localtime((stat("$graphdir/mbmon-fan-day.png"))[9]);
       print "<center><b>$Lang::tr{'the statistics were last updated at'}: $ftime</b></center><br />\n";
-      print "<a href='/cgi-bin/mbmongraph.cgi?graph=fan'>";
+      print "<a href='/cgi-bin/hardwaregraphs.cgi?graph=fan'>";
       print "<img src='/graphs/mbmon-fan-day.png' border='0' />";
       print "</a>";
     }
@@ -203,7 +235,7 @@ else
     {
       my $ftime = localtime((stat("$graphdir/mbmon-volt-day.png"))[9]);
       print "<center><b>$Lang::tr{'the statistics were last updated at'}: $ftime</b></center><br />\n";
-      print "<a href='/cgi-bin/mbmongraph.cgi?graph=volt'>";
+      print "<a href='/cgi-bin/hardwaregraphs.cgi?graph=volt'>";
       print "<img src='/graphs/mbmon-volt-day.png' border='0' />";
       print "</a>";
     } 
@@ -217,32 +249,24 @@ else
 
   if ( $mbmon_settings{'GRAPH_HDD'} == 1 )
   {
-    &Header::openbox('100%', 'center', $Lang::tr{'harddisk temperature'});
-    if (-e "$graphdir/hddtemp-day.png")
-     {
-      my $ftime = localtime((stat("$graphdir/hddtemp-day.png"))[9]);
-      print "<center>";
-      print "<b>$Lang::tr{'the statistics were last updated at'}: $ftime</b></center><br /><hr />\n";
-      print "<a href='/cgi-bin/hardwaregraphs.cgi?graph=hdd'>";
-      print "<img src='/graphs/hddtemp-day.png' border='0' /><hr />";
-      print "</a>";
-    }
-    else 
-    {
-      print $Lang::tr{'no information available'};
-    }
-    print "<br />\n";
-    &Header::closebox();
+       hddtempbox("hda");
+       hddtempbox("hdb");
+       hddtempbox("hdc");
+       hddtempbox("hdd");
+       hddtempbox("hde");
+       hddtempbox("hdf");
+       hddtempbox("hdg");
+       hddtempbox("hdh");
   }
 
   &Header::openbox('100%', 'center', $Lang::tr{'settings'});
 print <<END
 <form method='post' action='$ENV{'SCRIPT_NAME'}'>
 <table width='100%'>
-<tr><td colspan='2'><input type='checkbox' name='TEMP' $selected_temp />&nbsp;$Lang::tr{'mbmon temp'} $Lang::tr{'graph'}</td></tr>
-<tr><td colspan='2'><input type='checkbox' name='FAN' $selected_fan />&nbsp;$Lang::tr{'mbmon fan'} $Lang::tr{'graph'}</td></tr>
-<tr><td colspan='2'><input type='checkbox' name='VOLT' $selected_volt />&nbsp;$Lang::tr{'mbmon volt'} $Lang::tr{'graph'}</td></tr>
-<tr><td colspan='2'><input type='checkbox' name='HDD' $selected_hdd />&nbsp;$Lang::tr{'harddisk temperature'}-$Lang::tr{'graph'}</td></tr>
+<tr><td colspan='2' align='left'><input type='checkbox' name='TEMP' $selected_temp />&nbsp;$Lang::tr{'mbmon temp'} $Lang::tr{'graph'}</td></tr>
+<tr><td colspan='2' align='left'><input type='checkbox' name='FAN' $selected_fan />&nbsp;$Lang::tr{'mbmon fan'} $Lang::tr{'graph'}</td></tr>
+<tr><td colspan='2' align='left'><input type='checkbox' name='VOLT' $selected_volt />&nbsp;$Lang::tr{'mbmon volt'} $Lang::tr{'graph'}</td></tr>
+<tr><td colspan='2' align='left'><input type='checkbox' name='HDD' $selected_hdd />&nbsp;$Lang::tr{'harddisk temperature'}-$Lang::tr{'graph'}</td></tr>
 </table>
 <hr />
 <table width='100%' border='0' cellspacing='1' cellpadding='0'>
@@ -255,11 +279,11 @@ foreach $key ( sort(keys %mbmon_values) )
 {
   if ( $i % 2 )
   {
-    print("<tr bgcolor='$Header::table2colour'>");
+    print("<tr bgcolor='$color{'color22'}'>");
   }
   else 
   {
-    print("<tr bgcolor='$Header::table1colour'>");
+    print("<tr bgcolor='$color{'color20'}'>");
   }
   $mbmon_settings{'LABEL-'.$key} = &Header::cleanhtml($mbmon_settings{'LABEL-'.$key});
   print("<td align='center'><input type='checkbox' name='LINE-$key' $mbmon_graphs{$key}/></td>");
@@ -281,7 +305,20 @@ END
   &Header::closebox();
 }
 
-&Header::closebox();
-
 &Header::closebigbox();
 &Header::closepage();
+
+sub hddtempbox {
+ my $disk = $_[0];
+    if (-e "$graphdir/hddtemp-$disk-day.png") {
+  
+         &Header::openbox('100%', 'center', "Disk /dev/$disk $Lang::tr{'graph'}");
+         my $ftime = localtime((stat("$graphdir/hddtemp-$disk-day.png"))[9]);
+         print "<center><b>$Lang::tr{'the statistics were last updated at'}: $ftime</b></center><br />\n";
+         print "<a href='/cgi-bin/hardwaregraphs.cgi?graph=hddtemp-$disk'>";
+         print "<img src='/graphs/hddtemp-$disk-day.png' border='0' />";
+         print "</a>";
+         print "<br />\n";
+        &Header::closebox();
+  }
+}