[LON-CAPA-cvs] cvs: loncom / loncron
albertel
lon-capa-cvs@mail.lon-capa.org
Tue, 11 May 2004 21:08:55 -0000
albertel Tue May 11 17:08:55 2004 EDT
Modified files:
/loncom loncron
Log:
- add command line args to loncron
Index: loncom/loncron
diff -u loncom/loncron:1.48 loncom/loncron:1.49
--- loncom/loncron:1.48 Tue May 11 16:19:46 2004
+++ loncom/loncron Tue May 11 17:08:55 2004
@@ -2,7 +2,7 @@
# Housekeeping program, started by cron, loncontrol and loncron.pl
#
-# $Id: loncron,v 1.48 2004/05/11 20:19:46 albertel Exp $
+# $Id: loncron,v 1.49 2004/05/11 21:08:55 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -36,6 +36,7 @@
use IO::File;
use IO::Socket;
use HTML::Entities;
+use Getopt::Long;
#globals
use vars qw (%perlvar %simplestatus $errors $warnings $notices $totalcount);
@@ -450,22 +451,27 @@
&log($fh,'<hr /><a name="connections" /><h2>Connections</h2>');
print "testing connections\n";
&log($fh,"<table border='2'>");
+ my ($good,$bad)=(0,0);
foreach my $tryserver (sort(keys(%{$hostname}))) {
print(".");
my $result;
my $answer=reply("pong",$tryserver);
if ($answer eq "$tryserver:$perlvar{'lonHostID'}") {
$result="<b>ok</b>";
+ $good++;
} else {
$result=$answer;
$warnings++;
- if ($answer eq 'con_lost') { $warnings++; }
+ if ($answer eq 'con_lost') {
+ $bad++;
+ $warnings++;
+ }
}
if ($answer =~ /con_lost/) { print(" $tryserver down\n"); }
&log($fh,"<tr><td>$tryserver</td><td>$result</td></tr>\n");
}
&log($fh,"</table>");
-
+ print "\n$good good, $bad bad connections\n";
&errout($fh);
}
@@ -545,8 +551,36 @@
system("metasend -b -t $emailto -s '$subj' -f $statusdir/index.html -m text/html");
}
+sub usage {
+ print(<<USAGE);
+loncron - housekeeping program that checks up on various parts of Lon-CAPA
+
+Options:
+ --help Display help
+ --oldlonc When starting the lonc daemon use 'lonc' not 'loncnew'
+ --noemail Do not send the status email
+ --justcheckconnections Only check the current status of the lonc/d
+ connections, do not send emails do not
+ check if the daemons are running, do not
+ generate lon-status
+ --justcheckdaemons Only check that all of the Lon-CAPA daemons are
+ running, do not send emails do not
+ check the lonc/d connections, do not
+ generate lon-status
+
+USAGE
+}
+
# ================================================================ Main Program
sub main () {
+ my ($oldlonc,$help,$justcheckdaemons,$noemail,$justcheckconnections);
+ &GetOptions("help" => \$help,
+ "oldlonc" => \$oldlonc,
+ "justcheckdaemons" => \$justcheckdaemons,
+ "noemail" => \$noemail,
+ "justcheckconnections" => \$justcheckconnections
+ );
+ if ($help) { &usage(); return; }
# --------------------------------- Read loncapa_apache.conf and loncapa.conf
my $perlvarref=LONCAPA::Configuration::read_conf('loncapa.conf');
%perlvar=%{$perlvarref};
@@ -584,7 +618,7 @@
my (%hostname,%hostdom,%hostrole,%spareid);
while (my $configline=<$config>) {
- next if ($configline =~ /^(\#|\s*$)/);
+ next if ($configline =~ /^(\#|\s*\$)/);
my ($id,$domain,$role,$name,$ip,$domdescr)=split(/:/,$configline);
if ($id && $domain && $role && $name && $ip) {
$hostname{$id}=$name;
@@ -611,25 +645,33 @@
$warnings=0;
$notices=0;
- my $fh=&start_logging(\%hostdom,\%hostrole,\%hostname,\%spareid);
-
- &log_machine_info($fh);
- &clean_tmp($fh);
- &clean_lonIDs($fh);
- &check_httpd_logs($fh);
- &rotate_lonnet_logs($fh);
- &checkon_daemon($fh,'lonsql',200000);
- &checkon_daemon($fh,'lond',40000,1);
- &checkon_daemon($fh,'lonc',40000,1);
- &checkon_daemon($fh,'lonhttpd',40000);
-
- &test_connections($fh,\%hostname);
- &check_delayed_msg($fh);
-
- &finish_logging($fh);
- &log_simplestatus();
- if ($totalcount>200) { &send_mail(); }
+ my $fh;
+ if (!$justcheckdaemons && !$justcheckconnections) {
+ $fh=&start_logging(\%hostdom,\%hostrole,\%hostname,\%spareid);
+
+ &log_machine_info($fh);
+ &clean_tmp($fh);
+ &clean_lonIDs($fh);
+ &check_httpd_logs($fh);
+ &rotate_lonnet_logs($fh);
+ }
+ if (!$justcheckconnections) {
+ &checkon_daemon($fh,'lonsql',200000);
+ &checkon_daemon($fh,'lond',40000,1);
+ &checkon_daemon($fh,'lonc',40000,1);
+ &checkon_daemon($fh,'lonhttpd',40000);
+ }
+ if (!$justcheckdaemons) {
+ &test_connections($fh,\%hostname);
+ }
+ if (!$justcheckdaemons && !$justcheckconnections) {
+ &check_delayed_msg($fh);
+ &finish_logging($fh);
+ &log_simplestatus();
+
+ if ($totalcount>200 && !$noemail) { &send_mail(); }
+ }
}
&main();