version 1.100, 2014/03/17 14:47:38
|
version 1.101, 2014/12/16 18:18:44
|
Line 157 sub checkon_daemon {
|
Line 157 sub checkon_daemon {
|
$errors++; |
$errors++; |
my $kadaemon=$daemon; |
my $kadaemon=$daemon; |
if ($kadaemon eq 'lonmemcached') { $kadaemon='memcached'; } |
if ($kadaemon eq 'lonmemcached') { $kadaemon='memcached'; } |
&log($fh,'<br><font color="red">Killall '.$daemon.': '. |
&log($fh,'<br /><font color="red">Killall '.$daemon.': '. |
`killall $kadaemon 2>&1`.' - '); |
`killall $kadaemon 2>&1`.' - '); |
sleep 1; |
sleep 1; |
&log($fh,unlink($pidfile).' - '. |
&log($fh,unlink($pidfile).' - '. |
`killall -9 $kadaemon 2>&1`. |
`killall -9 $kadaemon 2>&1`. |
'</font><br>'); |
'</font><br />'); |
&log($fh,"<h3>$daemon not running, trying to start</h3>"); |
&log($fh,"<h3>$daemon not running, trying to start</h3>"); |
|
|
if (&start_daemon($fh,$daemon,$pidfile,$args)) { |
if (&start_daemon($fh,$daemon,$pidfile,$args)) { |
Line 285 sub start_logging {
|
Line 285 sub start_logging {
|
|
|
|
|
&log($fh,(<<ENDHEADERS)); |
&log($fh,(<<ENDHEADERS)); |
<html> |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
<head> |
<head> |
<title>LON Status Report $perlvar{'lonHostID'}</title> |
<title>LON Status Report $perlvar{'lonHostID'}</title> |
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
</head> |
</head> |
<body bgcolor="#AAAAAA"> |
<body bgcolor="#AAAAAA"> |
<a name="top" /> |
<a name="top" /> |
Line 328 ENDHEADERS
|
Line 330 ENDHEADERS
|
"</td><td>".$role. |
"</td><td>".$role. |
"</td><td>".&Apache::lonnet::hostname($id)."</td></tr>\n"); |
"</td><td>".&Apache::lonnet::hostname($id)."</td></tr>\n"); |
} |
} |
&log($fh,"</table><h3>Spare Hosts</h3><ul>"); |
&log($fh,"</table><h3>Spare Hosts</h3>"); |
foreach my $type (sort(keys(%Apache::lonnet::spareid))) { |
if (keys(%Apache::lonnet::spareid) > 0) { |
&log($fh,"<li>$type\n<ol>"); |
&log($fh,"<ul>"); |
foreach my $id (@{ $Apache::lonnet::spareid{$type} }) { |
foreach my $type (sort(keys(%Apache::lonnet::spareid))) { |
&log($fh,"<li>$id</li>\n"); |
&log($fh,"<li>$type\n<ol>"); |
} |
foreach my $id (@{ $Apache::lonnet::spareid{$type} }) { |
&log($fh,"</ol>\n</li>\n"); |
&log($fh,"<li>$id</li>\n"); |
|
} |
|
&log($fh,"</ol>\n</li>\n"); |
|
} |
|
&log($fh,"</ul>\n"); |
|
} else { |
|
&log($fh,"No spare hosts specified<br />\n"); |
} |
} |
&log($fh,"</ul>\n"); |
|
return $fh; |
return $fh; |
} |
} |
|
|
Line 482 sub clean_lonIDs {
|
Line 489 sub clean_lonIDs {
|
my $since=$now-$mtime; |
my $since=$now-$mtime; |
if ($since>$perlvar{'lonExpire'}) { |
if ($since>$perlvar{'lonExpire'}) { |
$cleaned++; |
$cleaned++; |
&log($fh,"Unlinking $fname<br>"); |
&log($fh,"Unlinking $fname<br />"); |
unlink("$fname"); |
unlink("$fname"); |
} else { |
} else { |
$active++; |
$active++; |
Line 615 sub check_delayed_msg {
|
Line 622 sub check_delayed_msg {
|
my ($time,$sdf,$dserv,$dcmd)=split(/:/,$line); |
my ($time,$sdf,$dserv,$dcmd)=split(/:/,$line); |
if ($sdf eq 'F') { |
if ($sdf eq 'F') { |
my $local=localtime($time); |
my $local=localtime($time); |
&log($fh,"<b>Failed: $time, $dserv, $dcmd</b><br>"); |
&log($fh,"<b>Failed: $time, $dserv, $dcmd</b><br />"); |
$warnings++; |
$warnings++; |
} |
} |
if ($sdf eq 'S') { $unsend--; } |
if ($sdf eq 'S') { $unsend--; } |
Line 782 sub write_checksums {
|
Line 789 sub write_checksums {
|
} |
} |
|
|
sub send_mail { |
sub send_mail { |
print "Sending mail.\n"; |
|
my $defdom = $perlvar{'lonDefDomain'}; |
my $defdom = $perlvar{'lonDefDomain'}; |
my $origmail = $perlvar{'lonAdmEMail'}; |
my $origmail = $perlvar{'lonAdmEMail'}; |
my $emailto = &Apache::loncommon::build_recipient_list(undef, |
my $emailto = &Apache::loncommon::build_recipient_list(undef, |
Line 790 sub send_mail {
|
Line 796 sub send_mail {
|
if ($totalcount>2500) { |
if ($totalcount>2500) { |
$emailto.=",$perlvar{'lonSysEMail'}"; |
$emailto.=",$perlvar{'lonSysEMail'}"; |
} |
} |
my $subj="LON: $perlvar{'lonHostID'} E:$errors W:$warnings N:$notices"; |
my $from; |
|
my $hostname=`/bin/hostname`; |
my $result=system("metasend -b -S 4000000 -t $emailto -s '$subj' -f $statusdir/index.html -m text/html >& /dev/null"); |
chop($hostname); |
if ($result != 0) { |
$hostname=~s/[^\w\.]//g; |
$result=system("mail -s '$subj' $emailto < $statusdir/index.html"); |
if ($hostname) { |
|
$from = 'www@'.$hostname; |
|
} |
|
my $subj="LON: $perlvar{'lonHostID'} E:$errors W:$warnings N:$notices"; |
|
my $loncronmail = "To: $emailto\n". |
|
"From: $from\n". |
|
"Subject: ".$subj."\n". |
|
"Content-type: text/html\; charset=UTF-8\n". |
|
"MIME-Version: 1.0\n\n"; |
|
if (open(my $fh,"<$statusdir/index.html")) { |
|
while (<$fh>) { |
|
$loncronmail .= $_; |
|
} |
|
close($fh); |
|
} else { |
|
$loncronmail .= "Failed to read from http://$hostname/lon-status/index.html\n"; |
|
} |
|
$loncronmail .= "\n\n"; |
|
if (open(my $mailh, "|/usr/lib/sendmail -oi -t -odb")) { |
|
print $mailh $loncronmail; |
|
close($mailh); |
|
print "Sending mail.\n"; |
|
} else { |
|
print "Sending mail failed.\n"; |
} |
} |
} |
} |
|
|