X-Git-Url: http://git.ipfire.org/?p=people%2Fpmueller%2Fipfire-2.x.git;a=blobdiff_plain;f=html%2Fcgi-bin%2Fmedia.cgi;h=6a89ca86774710c29dc19f3398aa800f4b344568;hp=00701518163fc3519c3a6d2589e6bcd72b219629;hb=fac92c6d25038f61430a4e872e720ba00b539385;hpb=72fe12a934084f7127b252bdfa3ab6d24e0bf5cb diff --git a/html/cgi-bin/media.cgi b/html/cgi-bin/media.cgi index 0070151816..6a89ca8677 100644 --- a/html/cgi-bin/media.cgi +++ b/html/cgi-bin/media.cgi @@ -1,22 +1,39 @@ #!/usr/bin/perl -# -# SmoothWall CGIs -# -# This code is distributed under the terms of the GPL -# -# (c) The SmoothWall Team -# -# +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2008 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +# # +############################################################################### 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); #workaround to suppress a warning when a variable is used only once my @dummy = ( ${Header::colourred} ); @@ -24,43 +41,39 @@ undef (@dummy); my %cgiparams=(); -&Header::showhttpheaders(); - -&Header::getcgihash(\%cgiparams); - -&Header::openpage($Lang::tr{'media information'}, 1, ''); - -&Header::openbigbox('100%', 'left'); - -&Header::openbox('100%', 'center', "Disk $Lang::tr{'graph'}"); -if (-e "$Header::graphdir/disk-day.png") { - my $ftime = localtime((stat("$Header::graphdir/disk-day.png"))[9]); - print "
$Lang::tr{'the statistics were last updated at'}: $ftime

\n"; - print ""; - print ""; - print ""; -} else { - print $Lang::tr{'no information available'}; -} -print "
\n"; -&Header::closebox(); +my @querry = split(/\?/,$ENV{'QUERY_STRING'}); +$querry[0] = '' unless defined $querry[0]; +$querry[1] = 'hour' unless defined $querry[1]; my @devices = `kudzu -qps -c HD | grep device: | cut -d" " -f2 | sort | uniq`; -foreach (@devices) { - my $device = $_; - chomp($device); - diskbox("$device"); -} - -&Header::openbox('100%', 'center', $Lang::tr{'disk usage'}); -print "\n"; -open(DF,'/bin/df -B M -x rootfs|'); -while() -{ - if ($_ =~ m/^Filesystem/ ) - { - print <\n"; + open(DF,'/bin/df -B M -x rootfs|'); + while(){ + if ($_ =~ m/^Filesystem/ ){ + print < @@ -71,11 +84,9 @@ while() END ; - } - else - { - my ($device,$size,$used,$free,$percent,$mount) = split; - print < @@ -85,24 +96,22 @@ END END ; - } -} -close DF; -print " @@ -113,11 +122,9 @@ while() END ; - } - else - { - my ($device,$size,$used,$free,$percent,$mount) = split; - print < @@ -127,33 +134,35 @@ END END ; - } -} -close DF; -my @iostat1 = qx(/usr/bin/iostat -dm -p | grep -v "Linux" | awk '{print \$1}'); -my @iostat2 = qx(/usr/bin/iostat -dm -p | grep -v "Linux" | awk '{print \$5}'); -my @iostat3 = qx(/usr/bin/iostat -dm -p | grep -v "Linux" | awk '{print \$6}'); -print ""; -my $i=0; - -for(my $i = 1; $i <= $#iostat1; $i++) -{ -if ( $i eq '1' ){print "";} -else {print "";} -} -print "
$Lang::tr{'device'} $Lang::tr{'mounted on'}
$device $mount END ; - &percentbar($percent); - print < $percent
 \n

Inodes

\n"; + } + } + close DF; + print "
 \n

Inodes

\n"; -open(DF,'/bin/df -i -x rootfs|'); -while() -{ - if ($_ =~ m/^Filesystem/ ) - { - print <){ + if ($_ =~ m/^Filesystem/ ){ + print <
$Lang::tr{'device'} $Lang::tr{'mounted on'}
$device $mount END ; - &percentbar($percent); - print < $percent
 \n

transfers

DeviceMB readMB writen
@iostat1[$i]@iostat2[$i]@iostat3[$i]
\n"; -&Header::closebox(); - -&Header::closebigbox(); + } + } + close DF; + my @iostat1 = qx(/usr/bin/iostat -dm -p | grep -v "Linux" | awk '{print \$1}'); + my @iostat2 = qx(/usr/bin/iostat -dm -p | grep -v "Linux" | awk '{print \$5}'); + my @iostat3 = qx(/usr/bin/iostat -dm -p | grep -v "Linux" | awk '{print \$6}'); + print " \n

transfers

"; + my $i=0; + + for(my $i = 1; $i <= $#iostat1; $i++){ + if ( $i eq '1' ){ + print "DeviceMB readMB writen"; + }else{ + print "$iostat1[$i]$iostat2[$i]$iostat3[$i]"; + } + } + print "\n"; + &Header::closebox(); -&Header::closepage(); + &Header::closebigbox(); + &Header::closepage(); +} sub percentbar { @@ -183,29 +192,33 @@ END } sub diskbox { - my $disk = $_[0]; - if (-e "$Header::graphdir/disk-$disk-day.png") { - &Header::openbox('100%', 'center', "Disk /dev/$disk $Lang::tr{'graph'}"); - my $ftime = localtime((stat("$Header::graphdir/disk-$disk-day.png"))[9]); - print "
$Lang::tr{'the statistics were last updated at'}: $ftime

\n"; - print ""; - print ""; - print ""; - print "
\n"; - if (-e "/usr/local/bin/hddshutdown-state") { - system("/usr/local/bin/hddshutdown-state $disk"); - } - my $smart = `smartctrl $disk`; - $smart = &Header::cleanhtml($smart); - print < - -END -; - &Header::closebox(); + my $disk = $_[0]; + chomp $disk; + my @status; + if (-e "/var/run/hddstatus"){ + open(DATEI, "; + close(DATEI); + + foreach (@diskstate){ + if ( $_ =~/$disk/ ){@status = split(/-/,$_);} } - + if ( $status[1]=~/standby/){ + my $ftime = localtime((stat("/var/run/hddshutdown-$disk"))[9]); + print"Disk $disk status:".$status[1]." (since $ftime)"; + }else{ + print"Disk $disk status:".$status[1].""; + } + } + + my $smart = `/usr/local/bin/smartctrl $disk`; + $smart = &Header::cleanhtml($smart); + print < + +END +; }