version 1.89, 2011/05/14 16:12:53
|
version 1.95, 2011/11/14 17:27:34
|
Line 515 sub clean_sockets {
|
Line 515 sub clean_sockets {
|
# ----------------------------------------------------------------------- httpd |
# ----------------------------------------------------------------------- httpd |
sub check_httpd_logs { |
sub check_httpd_logs { |
my ($fh)=@_; |
my ($fh)=@_; |
&log($fh,'<hr /><a name="httpd" /><h2>httpd</h2><h3>Access Log</h3><pre>'); |
if (open(PIPE,"./lchttpdlogs|")) { |
|
while (my $line=<PIPE>) { |
open (DFH,"tail -n25 /etc/httpd/logs/access_log|"); |
&log($fh,$line); |
while (my $line=<DFH>) { &log($fh,&encode_entities($line,'<>&"')) }; |
if ($line=~/\[error\]/) { $notices++; } |
close (DFH); |
} |
|
close(PIPE); |
&log($fh,"</pre><h3>Error Log</h3><pre>"); |
|
|
|
open (DFH,"tail -n25 /etc/httpd/logs/error_log|"); |
|
while (my $line=<DFH>) { |
|
&log($fh,"$line"); |
|
if ($line=~/\[error\]/) { $notices++; } |
|
} |
} |
close (DFH); |
|
&log($fh,"</pre>"); |
|
&errout($fh); |
&errout($fh); |
} |
} |
|
|
Line 635 sub check_delayed_msg {
|
Line 627 sub check_delayed_msg {
|
} |
} |
|
|
&log($fh,"<p>Total unsend messages: <b>$unsend</b></p>\n"); |
&log($fh,"<p>Total unsend messages: <b>$unsend</b></p>\n"); |
$warnings=$warnings+5*$unsend; |
if ($unsend > 0) { |
|
$warnings=$warnings+5*$unsend; |
|
} |
|
|
if ($unsend) { $simplestatus{'unsend'}=$unsend; } |
if ($unsend) { $simplestatus{'unsend'}=$unsend; } |
&log($fh,"<h3>Outgoing Buffer</h3>\n<pre>"); |
&log($fh,"<h3>Outgoing Buffer</h3>\n<pre>"); |
Line 649 sub check_delayed_msg {
|
Line 643 sub check_delayed_msg {
|
} |
} |
&log($fh,"</pre>\n"); |
&log($fh,"</pre>\n"); |
close (DFH); |
close (DFH); |
|
my %hostname = &Apache::lonnet::all_hostnames(); |
|
my $numhosts = scalar(keys(%hostname)); |
# pong to all servers that have delayed messages |
# pong to all servers that have delayed messages |
# this will trigger a reverse connection, which should flush the buffers |
# this will trigger a reverse connection, which should flush the buffers |
foreach my $tryserver (keys %servers) { |
foreach my $tryserver (sort(keys(%servers))) { |
my $answer=&Apache::lonnet::reply("pong",$tryserver); |
if ($hostname{$tryserver} || !$numhosts) { |
&log($fh,"Pong to $tryserver: $answer<br />"); |
my $answer; |
|
eval { |
|
local $SIG{ ALRM } = sub { die "TIMEOUT" }; |
|
alarm(20); |
|
$answer = &Apache::lonnet::reply("pong",$tryserver); |
|
alarm(0); |
|
}; |
|
if ($@ && $@ =~ m/TIMEOUT/) { |
|
&log($fh,"Attempted pong to $tryserver timed out<br />"); |
|
print "time out while contacting: $tryserver for pong\n"; |
|
} else { |
|
&log($fh,"Pong to $tryserver: $answer<br />"); |
|
} |
|
} else { |
|
&log($fh,"$tryserver has delayed messages, but is not part of the cluster -- skipping 'Pong'.<br />"); |
|
} |
} |
} |
} |
} |
|
|
Line 687 sub log_simplestatus {
|
Line 698 sub log_simplestatus {
|
} |
} |
|
|
sub write_loncaparevs { |
sub write_loncaparevs { |
|
print "Retrieving LON-CAPA version information\n"; |
if (open(my $fh,">$perlvar{'lonTabDir'}/loncaparevs.tab")) { |
if (open(my $fh,">$perlvar{'lonTabDir'}/loncaparevs.tab")) { |
my %hostname = &Apache::lonnet::all_hostnames(); |
my %hostname = &Apache::lonnet::all_hostnames(); |
foreach my $id (sort(keys(%hostname))) { |
foreach my $id (sort(keys(%hostname))) { |
if ($id ne '') { |
if ($id ne '') { |
my $loncaparev = &Apache::lonnet::get_server_loncaparev('',$id,1,'loncron'); |
my $loncaparev; |
|
eval { |
|
local $SIG{ ALRM } = sub { die "TIMEOUT" }; |
|
alarm(10); |
|
$loncaparev = |
|
&Apache::lonnet::get_server_loncaparev('',$id,1,'loncron'); |
|
alarm(0); |
|
}; |
|
if ($@ && $@ =~ m/TIMEOUT/) { |
|
print "time out while contacting lonHost: $id for version\n"; |
|
} |
if ($loncaparev =~ /^[\w.\-]+$/) { |
if ($loncaparev =~ /^[\w.\-]+$/) { |
print $fh $id.':'.$loncaparev."\n"; |
print $fh $id.':'.$loncaparev."\n"; |
} |
} |
Line 703 sub write_loncaparevs {
|
Line 725 sub write_loncaparevs {
|
} |
} |
|
|
sub write_serverhomeIDs { |
sub write_serverhomeIDs { |
|
print "Retrieving LON-CAPA lonHostID information\n"; |
if (open(my $fh,">$perlvar{'lonTabDir'}/serverhomeIDs.tab")) { |
if (open(my $fh,">$perlvar{'lonTabDir'}/serverhomeIDs.tab")) { |
my %name_to_host = &Apache::lonnet::all_names(); |
my %name_to_host = &Apache::lonnet::all_names(); |
foreach my $name (sort(keys(%name_to_host))) { |
foreach my $name (sort(keys(%name_to_host))) { |
if ($name ne '') { |
if ($name ne '') { |
if (ref($name_to_host{$name}) eq 'ARRAY') { |
if (ref($name_to_host{$name}) eq 'ARRAY') { |
my $serverhomeID = &Apache::lonnet::get_server_homeID($name,1,'loncron'); |
my $serverhomeID; |
|
eval { |
|
local $SIG{ ALRM } = sub { die "TIMEOUT" }; |
|
alarm(10); |
|
$serverhomeID = |
|
&Apache::lonnet::get_server_homeID($name,1,'loncron'); |
|
alarm(0); |
|
}; |
|
if ($@ && $@ =~ m/TIMEOUT/) { |
|
print "Time out while contacting server: $name\n"; |
|
} |
if ($serverhomeID ne '') { |
if ($serverhomeID ne '') { |
print $fh $name.':'.$serverhomeID."\n"; |
print $fh $name.':'.$serverhomeID."\n"; |
} else { |
} else { |