--- loncom/loncron 2007/04/11 23:08:43 1.72 +++ loncom/loncron 2007/04/13 18:26:22 1.73 @@ -2,7 +2,7 @@ # Housekeeping program, started by cron, loncontrol and loncron.pl # -# $Id: loncron,v 1.72 2007/04/11 23:08:43 albertel Exp $ +# $Id: loncron,v 1.73 2007/04/13 18:26:22 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -62,6 +62,17 @@ sub errout { ENDERROUT } +sub rotate_logfile { + my ($file,$fh,$description) = @_; + my $size=(stat($file))[7]; + if ($size>40000) { + &log($fh,"

Rotating $description ...

"); + rename("$file.2","$file.3"); + rename("$file.1","$file.2"); + rename("$file","$file.1"); + } +} + sub start_daemon { my ($fh,$daemon,$pidfile,$args) = @_; my $progname=$daemon; @@ -69,13 +80,8 @@ sub start_daemon { $progname='loncnew'; } my $error_fname="$perlvar{'lonDaemons'}/logs/${daemon}_errors"; - my $size=(stat($error_fname))[7]; - if ($size>40000) { - &log($fh,"

Rotating error logs ...

"); - rename("$error_fname.2","$error_fname.3"); - rename("$error_fname.1","$error_fname.2"); - rename("$error_fname","$error_fname.1"); - } + &rotate_logfile($error_fname,$fh,'error logs'); + system("$perlvar{'lonDaemons'}/$progname 2>$perlvar{'lonDaemons'}/logs/${daemon}_errors"); sleep 1; if (-e $pidfile) { @@ -193,18 +199,7 @@ sub checkon_daemon { } my $fname="$perlvar{'lonDaemons'}/logs/$daemon.log"; - - my ($dev,$ino,$mode,$nlink, - $uid,$gid,$rdev,$size, - $atime,$mtime,$ctime, - $blksize,$blocks)=stat($fname); - - if ($size>$maxsize) { - &log($fh,"

Rotating logs ...

"); - rename("$fname.2","$fname.3"); - rename("$fname.1","$fname.2"); - rename("$fname","$fname.1"); - } + &rotate_logfile($fname,$fh,'logs'); &errout($fh); return $result; @@ -450,23 +445,22 @@ sub rotate_lonnet_logs { } else { &log($fh,"No perm log\n") } my $fname="$perlvar{'lonDaemons'}/logs/lonnet.log"; - - my ($dev,$ino,$mode,$nlink, - $uid,$gid,$rdev,$size, - $atime,$mtime,$ctime, - $blksize,$blocks)=stat($fname); - - if ($size>40000) { - &log($fh,"

Rotating logs ...

"); - rename("$fname.2","$fname.3"); - rename("$fname.1","$fname.2"); - rename("$fname","$fname.1"); - } + &rotate_logfile($fname,$fh,'lonnet log'); &log($fh,""); &errout($fh); } +sub rotate_other_logs { + my ($fh) = @_; + my $fname="$perlvar{'lonDaemons'}/logs/autoenroll.log"; + &rotate_logfile($fname,$fh,'Auto Enroll log'); + $fname="$perlvar{'lonDaemons'}/logs/autocreate.log"; + &rotate_logfile($fname,$fh,'Create Course log'); + $fname="$perlvar{'lonDaemons'}/logs/searchcat.log"; + &rotate_logfile($fname,$fh,'Search Cataloguing log'); +} + # ----------------------------------------------------------------- Connections sub test_connections { my ($fh)=@_; @@ -565,7 +559,7 @@ sub finish_logging { } sub log_simplestatus { - rename ("$statusdir/newstatus.html","$statusdir/index.html"); + rename("$statusdir/newstatus.html","$statusdir/index.html"); my $sfh=IO::File->new(">$statusdir/loncron_simple.txt"); foreach (keys %simplestatus) { @@ -676,6 +670,7 @@ sub main () { &clean_lonIDs($fh); &check_httpd_logs($fh); &rotate_lonnet_logs($fh); + &rotate_other_logs($fh); } if (!$justcheckconnections && !$justreload) { &checkon_daemon($fh,'lonsql',200000);