--- loncom/loncron 2019/07/07 15:47:40 1.103.2.3 +++ loncom/loncron 2020/01/11 22:39:55 1.103.2.6 @@ -2,7 +2,7 @@ # Housekeeping program, started by cron, loncontrol and loncron.pl # -# $Id: loncron,v 1.103.2.3 2019/07/07 15:47:40 raeburn Exp $ +# $Id: loncron,v 1.103.2.6 2020/01/11 22:39:55 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -506,6 +506,34 @@ sub clean_lonIDs { &log($fh,"

$active open session(s)

"); } +# -------------------------------------------------------- clean out balanceIDs + +sub clean_balanceIDs { + my ($fh)=@_; + &log($fh,'

Session Tokens

'); + my $cleaned=0; + my $active=0; + if (-d $perlvar{'lonBalanceDir'}) { + while (my $fname=<$perlvar{'balanceDir'}/*.id>) { + my ($dev,$ino,$mode,$nlink, + $uid,$gid,$rdev,$size, + $atime,$mtime,$ctime, + $blksize,$blocks)=stat($fname); + my $now=time; + my $since=$now-$mtime; + if ($since>$perlvar{'lonExpire'}) { + $cleaned++; + &log($fh,"Unlinking $fname
"); + unlink("$fname"); + } else { + $active++; + } + } + } + &log($fh,"

Cleaned up ".$cleaned." stale balancer files

"); + &log($fh,"

$active unexpired balancer files

"); +} + # ------------------------------------------------ clean out webDAV Session IDs sub clean_webDAV_sessionIDs { my ($fh)=@_; @@ -865,7 +893,7 @@ sub write_hostips { if (keys(%prevhosts) && keys(%currhosts)) { foreach my $key (keys(%prevhosts)) { unless ($currhosts{$key} eq $prevhosts{$key}) { - $ipchange{$key} = $prevhosts{$key}.'|'.$currhosts{$key}; + $ipchange{$key} = $prevhosts{$key}.' | '.$currhosts{$key}; } } foreach my $key (keys(%currhosts)) { @@ -878,10 +906,10 @@ sub write_hostips { if (keys(%ipchange)) { if (open(my $fh,'>>',$perlvar{'lonDaemons'}.'/logs/hostip.log')) { print $fh "********************\n".localtime(time).' Changes --'."\n". - "Hostname | Previous IP | New IP\n". - "--------------------------------\n"; + "| Hostname | Previous IP | New IP |\n". + " --------------------------------- \n"; foreach my $hostname (sort(keys(%ipchange))) { - print $fh "$hostname | $ipchange{$hostname}\n"; + print $fh "| $hostname | $ipchange{$hostname} |\n"; } print $fh "\n*******************\n\n"; close($fh); @@ -896,10 +924,10 @@ sub write_hostips { "MIME-Version: 1.0\n\n". "Host/IP changes\n". " \n". - "Hostname | Previous IP | New IP\n". - "--------------------------------\n"; + "| Hostname | Previous IP | New IP |\n". + " --------------------------------- \n"; foreach my $hostname (sort(keys(%ipchange))) { - $chgmail .= "$hostname | $ipchange{$hostname}\n"; + $chgmail .= "| $hostname | $ipchange{$hostname} |\n"; } $chgmail .= "\n\n"; if (open(my $mailh, "|/usr/lib/sendmail -oi -t -odb")) { @@ -971,19 +999,23 @@ Options: do not send emails do not check if the daemons are running, do not generate lon-status - + --justiptables Only update the dynamic iptables rules for the + lond port; do not send emails, do not + check if the daemons are running, do not + generate lon-status USAGE } # ================================================================ Main Program sub main () { my ($help,$justcheckdaemons,$noemail,$justcheckconnections, - $justreload); + $justreload,$justiptables); &GetOptions("help" => \$help, "justcheckdaemons" => \$justcheckdaemons, "noemail" => \$noemail, "justcheckconnections" => \$justcheckconnections, - "justreload" => \$justreload + "justreload" => \$justreload, + "justiptables" => \$justiptables ); if ($help) { &usage(); return; } # --------------------------------- Read loncapa_apache.conf and loncapa.conf @@ -1033,9 +1065,11 @@ sub main () { } } } - &Apache::lonnet::load_hosts_tab(1,$nomemcache); - &Apache::lonnet::load_domain_tab(1,$nomemcache); - &Apache::lonnet::get_iphost(1,$nomemcache); + if (!$justiptables) { + &Apache::lonnet::load_hosts_tab(1,$nomemcache); + &Apache::lonnet::load_domain_tab(1,$nomemcache); + &Apache::lonnet::get_iphost(1,$nomemcache); + } # ----------------------------------------- Force firewall update for lond port @@ -1066,18 +1100,19 @@ sub main () { my $fh; - if (!$justcheckdaemons && !$justcheckconnections && !$justreload) { + if (!$justcheckdaemons && !$justcheckconnections && !$justreload && !$justiptables) { $fh=&start_logging(); &log_machine_info($fh); &clean_tmp($fh); &clean_lonIDs($fh); + &clean_balanceIDs($fh); &clean_webDAV_sessionIDs($fh); &check_httpd_logs($fh); &rotate_lonnet_logs($fh); &rotate_other_logs($fh); } - if (!$justcheckconnections && !$justreload) { + if (!$justcheckconnections && !$justreload && !$justiptables) { &checkon_daemon($fh,'lonmemcached',40000); &checkon_daemon($fh,'lonsql',200000); if ( &checkon_daemon($fh,'lond',40000,'USR1') eq 'running') { @@ -1094,7 +1129,7 @@ sub main () { if ($justcheckconnections) { &test_connections($fh); } - if (!$justcheckdaemons && !$justcheckconnections && !$justreload) { + if (!$justcheckdaemons && !$justcheckconnections && !$justreload && !$justiptables) { &check_delayed_msg($fh); &finish_logging($fh); &log_simplestatus();