version 1.82, 2009/11/26 00:18:09
|
version 1.91, 2011/10/28 14:26:15
|
Line 32 use strict;
|
Line 32 use strict;
|
|
|
use lib '/home/httpd/lib/perl/'; |
use lib '/home/httpd/lib/perl/'; |
use LONCAPA::Configuration; |
use LONCAPA::Configuration; |
|
use LONCAPA; |
use Apache::lonnet; |
use Apache::lonnet; |
use Apache::loncommon; |
use Apache::loncommon; |
|
|
Line 564 sub rotate_lonnet_logs {
|
Line 565 sub rotate_lonnet_logs {
|
|
|
sub rotate_other_logs { |
sub rotate_other_logs { |
my ($fh) = @_; |
my ($fh) = @_; |
my $fname="$perlvar{'lonDaemons'}/logs/autoenroll.log"; |
my %logs = ( |
&rotate_logfile($fname,$fh,'Auto Enroll log'); |
autoenroll => 'Auto Enroll log', |
$fname="$perlvar{'lonDaemons'}/logs/autocreate.log"; |
autocreate => 'Create Course log', |
&rotate_logfile($fname,$fh,'Create Course log'); |
searchcat => 'Search Cataloguing log', |
$fname="$perlvar{'lonDaemons'}/logs/searchcat.log"; |
autoupdate => 'Auto Update log', |
&rotate_logfile($fname,$fh,'Search Cataloguing log'); |
refreshcourseids_db => 'Refresh CourseIDs db log', |
|
); |
|
foreach my $item (keys(%logs)) { |
|
my $fname=$perlvar{'lonDaemons'}.'/logs/'.$item.'.log'; |
|
&rotate_logfile($fname,$fh,$logs{$item}); |
|
} |
} |
} |
|
|
# ----------------------------------------------------------------- Connections |
# ----------------------------------------------------------------- Connections |
Line 646 sub check_delayed_msg {
|
Line 652 sub check_delayed_msg {
|
# 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 (keys %servers) { |
my $answer=&Apache::lonnet::reply("pong",$tryserver); |
my $answer; |
&log($fh,"Pong to $tryserver: $answer<br />"); |
eval { |
|
local $SIG{ ALRM } = sub { die "TIMEOUT" }; |
|
alarm(20); |
|
$answer = &Apache::lonnet::reply("pong",$tryserver); |
|
alarm(0); |
|
}; |
|
if ($@ && $@ =~ m/TIMEOUT/) { |
|
print "time out while contacting: $tryserver for pong\n"; |
|
} else { |
|
&log($fh,"Pong to $tryserver: $answer<br />"); |
|
} |
} |
} |
} |
} |
|
|
Line 680 sub log_simplestatus {
|
Line 696 sub log_simplestatus {
|
$sfh->close(); |
$sfh->close(); |
} |
} |
|
|
|
sub write_loncaparevs { |
|
print "Retrieving LON-CAPA version information\n"; |
|
if (open(my $fh,">$perlvar{'lonTabDir'}/loncaparevs.tab")) { |
|
my %hostname = &Apache::lonnet::all_hostnames(); |
|
foreach my $id (sort(keys(%hostname))) { |
|
if ($id ne '') { |
|
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.\-]+$/) { |
|
print $fh $id.':'.$loncaparev."\n"; |
|
} |
|
} |
|
} |
|
close($fh); |
|
} |
|
return; |
|
} |
|
|
|
sub write_serverhomeIDs { |
|
print "Retrieving LON-CAPA lonHostID information\n"; |
|
if (open(my $fh,">$perlvar{'lonTabDir'}/serverhomeIDs.tab")) { |
|
my %name_to_host = &Apache::lonnet::all_names(); |
|
foreach my $name (sort(keys(%name_to_host))) { |
|
if ($name ne '') { |
|
if (ref($name_to_host{$name}) eq 'ARRAY') { |
|
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 '') { |
|
print $fh $name.':'.$serverhomeID."\n"; |
|
} else { |
|
print $fh $name.':'.$name_to_host{$name}->[0]."\n"; |
|
} |
|
} |
|
} |
|
} |
|
close($fh); |
|
} |
|
return; |
|
} |
|
|
sub send_mail { |
sub send_mail { |
print "sending mail\n"; |
print "sending mail\n"; |
my $defdom = $perlvar{'lonDefDomain'}; |
my $defdom = $perlvar{'lonDefDomain'}; |
Line 780 sub main () {
|
Line 854 sub main () {
|
print $fh "$key\n"; |
print $fh "$key\n"; |
} |
} |
close($fh); |
close($fh); |
my $execpath = $perlvar{'lonDaemons'}.'/lciptables'; |
if (&LONCAPA::try_to_lock('/tmp/lock_lciptables')) { |
system("$execpath $tmpfile"); |
my $execpath = $perlvar{'lonDaemons'}.'/lciptables'; |
unlink($fh); |
system("$execpath $tmpfile"); |
|
unlink('/tmp/lock_lciptables'); # Remove the lock file. |
|
} |
|
unlink($tmpfile); |
} |
} |
} |
} |
|
|
Line 825 sub main () {
|
Line 902 sub main () {
|
&check_delayed_msg($fh); |
&check_delayed_msg($fh); |
&finish_logging($fh); |
&finish_logging($fh); |
&log_simplestatus(); |
&log_simplestatus(); |
|
&write_loncaparevs(); |
|
&write_serverhomeIDs(); |
|
|
if ($totalcount>200 && !$noemail) { &send_mail(); } |
if ($totalcount>200 && !$noemail) { &send_mail(); } |
} |
} |