|
Server : Apache/2.2.2 (Fedora) System : Linux App1.pathumtani.go.th 2.6.20-1.2320.fc5smp #1 SMP Tue Jun 12 19:40:16 EDT 2007 i686 User : apache ( 48) PHP Version : 5.2.9 Disable Function : NONE Directory : /usr/libexec/webmin/status/ |
Upload File : |
# load-monitor.pl
# Check if the system load exceeds some level
sub get_load_status
{
local @u = &uptime_output();
if (!@u) {
return { 'up' => -1 }
}
elsif ($u[$_[0]->{'time'}] >= $_[0]->{'max'}) {
return { 'up' => 0 }
}
else {
return { 'up' => 1,
'desc' => "Load is $u[$_[0]->{'time'}]" };
}
}
sub show_load_dialog
{
print &ui_table_row($text{'load_time'},
&ui_radio("time", int($_[0]->{'time'}),
[ [ 0, $text{'load_1'} ],
[ 1, $text{'load_5'} ],
[ 2, $text{'load_15'} ] ]));
print &ui_table_row($text{'load_max'},
&ui_textbox("max", $_[0]->{'max'}, 6));
}
sub parse_load_dialog
{
&has_command("uptime") || &error($text{'load_ecmd'});
scalar(&uptime_output()) || &error($text{'load_efmt'});
$in{'max'} =~ /^[0-9\.]+$/ || &error($text{'load_emax'});
$_[0]->{'time'} = $in{'time'};
$_[0]->{'max'} = $in{'max'};
}
sub uptime_output
{
local $out = `uptime 2>&1`;
return $out =~ /average(s)?:\s+([0-9\.]+),?\s+([0-9\.]+),?\s+([0-9\.]+)/i ?
( $2, $3, $4 ) : ( );
}