--- loncom/loncron 2012/02/17 22:47:39 1.95.10.1 +++ loncom/loncron 2013/02/02 14:42:01 1.97 @@ -2,7 +2,7 @@ # Housekeeping program, started by cron, loncontrol and loncron.pl # -# $Id: loncron,v 1.95.10.1 2012/02/17 22:47:39 raeburn Exp $ +# $Id: loncron,v 1.97 2013/02/02 14:42:01 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -32,6 +32,7 @@ use strict; use lib '/home/httpd/lib/perl/'; use LONCAPA::Configuration; +use LONCAPA::Checksumming; use LONCAPA; use Apache::lonnet; use Apache::loncommon; @@ -270,12 +271,7 @@ sub log_machine_info { &log($fh,"
"); - open(DSH,"$perlvar{'lonDaemons'}/distprobe |"); - while (my $line="); &errout($fh); @@ -755,6 +751,26 @@ sub write_serverhomeIDs { return; } +sub write_checksums { + my $distro = &get_distro($perlvar{'lonDaemons'}); + if ($distro) { + print "Retrieving file version and checksumming.\n"; + my $numchksums = 0; + my ($chksumsref,$versionsref) = + &LONCAPA::Checksumming::get_checksums($distro,$perlvar{'lonDaemons'}, + $perlvar{'lonLib'}, + $perlvar{'lonIncludes'}, + $perlvar{'lonTabDir'}); + if (ref($chksumsref) eq 'HASH') { + $numchksums = scalar(keys(%{$chksumsref})); + } + print "File version retrieved and checksumming completed for $numchksums files.\n"; + } else { + print "File version retrieval and checksumming skipped - could not determine Linux distro.\n"; + } + return; +} + sub send_mail { print "sending mail\n"; my $defdom = $perlvar{'lonDefDomain'}; @@ -772,6 +788,21 @@ sub send_mail { } } +sub get_distro { + my ($dir,$fh) = @_; + my $distro; + if (open(my $disth,"$dir/distprobe |")) { + while (my $line=<$disth>) { + if ($fh) { + &log($fh,&encode_entities($line,'<>&"')); + } + $distro .= $line; + } + close($disth); + } + return $distro; +} + sub usage { print(<) { - &log($fh,&encode_entities($line,'<>&"')); - $psproc++; - } - close(DSH); + &get_distro($perlvar{'lonDaemons'},$fh); &log($fh,"