[LON-CAPA-cvs] cvs: loncom / loncron
albertel
lon-capa-cvs@mail.lon-capa.org
Thu, 11 Sep 2003 19:49:59 -0000
This is a MIME encoded message
--albertel1063309799
Content-Type: text/plain
albertel Thu Sep 11 15:49:59 2003 EDT
Modified files:
/loncom loncron
Log:
- retabinate
--albertel1063309799
Content-Type: text/plain
Content-Disposition: attachment; filename="albertel-20030911154959.txt"
Index: loncom/loncron
diff -u loncom/loncron:1.42 loncom/loncron:1.43
--- loncom/loncron:1.42 Wed Sep 10 15:13:09 2003
+++ loncom/loncron Thu Sep 11 15:49:59 2003
@@ -183,13 +183,13 @@
# --------------------------------------- Make sure that LON-CAPA is configured
# I only test for one thing here (lonHostID). This is just a safeguard.
if ('{[[[[lonHostID]]]]}' eq $perlvar{'lonHostID'}) {
- print("Unconfigured machine.\n");
- $emailto=$perlvar{'lonSysEMail'};
- $hostname=`/bin/hostname`;
- chop $hostname;
- $hostname=~s/[^\w\.]//g; # make sure is safe to pass through shell
- $subj="LON: Unconfigured machine $hostname";
- system("echo 'Unconfigured machine $hostname.' |\
+ print("Unconfigured machine.\n");
+ $emailto=$perlvar{'lonSysEMail'};
+ $hostname=`/bin/hostname`;
+ chop $hostname;
+ $hostname=~s/[^\w\.]//g; # make sure is safe to pass through shell
+ $subj="LON: Unconfigured machine $hostname";
+ system("echo 'Unconfigured machine $hostname.' |\
mailto $emailto -s '$subj' > /dev/null");
exit 1;
}
@@ -197,18 +197,18 @@
# ----------------------------- Make sure this process is running from user=www
my $wwwid=getpwnam('www');
if ($wwwid!=$<) {
- print("User ID mismatch. This program must be run as user 'www'\n");
- $emailto="$perlvar{'lonAdmEMail'},$perlvar{'lonSysEMail'}";
- $subj="LON: $perlvar{'lonHostID'} User ID mismatch";
- system("echo 'User ID mismatch. loncron must be run as user www.' |\
+ print("User ID mismatch. This program must be run as user 'www'\n");
+ $emailto="$perlvar{'lonAdmEMail'},$perlvar{'lonSysEMail'}";
+ $subj="LON: $perlvar{'lonHostID'} User ID mismatch";
+ system("echo 'User ID mismatch. loncron must be run as user www.' |\
mailto $emailto -s '$subj' > /dev/null");
- exit 1;
+ exit 1;
}
# ------------------------------------------------------------- Read hosts file
{
my $config=IO::File->new("$perlvar{'lonTabDir'}/hosts.tab");
-
+
while (my $configline=<$config>) {
my ($id,$domain,$role,$name,$ip,$domdescr)=split(/:/,$configline);
if ($id && $domain && $role && $name && $ip) {
@@ -231,12 +231,12 @@
# ------------------------------------------------------ Read spare server file
{
my $config=IO::File->new("$perlvar{'lonTabDir'}/spare.tab");
-
+
while (my $configline=<$config>) {
- chomp($configline);
- if (($configline) && ($configline ne $perlvar{'lonHostID'})) {
- $spareid{$configline}=1;
- }
+ chomp($configline);
+ if (($configline) && ($configline ne $perlvar{'lonHostID'})) {
+ $spareid{$configline}=1;
+ }
}
}
@@ -252,10 +252,10 @@
$date=localtime($now);
{
-my $fh=IO::File->new(">$statusdir/newstatus.html");
-my %simplestatus=();
-
-print $fh (<<ENDHEADERS);
+ my $fh=IO::File->new(">$statusdir/newstatus.html");
+ my %simplestatus=();
+
+ print $fh (<<ENDHEADERS);
<html>
<head>
<title>LON Status Report $perlvar{'lonHostID'}</title>
@@ -286,274 +286,274 @@
<table border=2>
ENDHEADERS
-foreach $varname (sort(keys(%perlvar))) {
- print $fh "<tr><td>$varname</td><td>$perlvar{$varname}</td></tr>\n";
-}
-print $fh "</table><h3>Hosts</h3><table border=2>";
-foreach $id (sort(keys(%hostname))) {
- print $fh
- "<tr><td>$id</td><td>$hostdom{$id}</td><td>$hostrole{$id}</td>";
- print $fh "<td>$hostname{$id}</td><td>$hostip{$id}</td></tr>\n";
-}
-print $fh "</table><h3>Spare Hosts</h3><ol>";
-foreach $id (sort(keys(%spareid))) {
- print $fh "<li>$id\n";
-}
-
-print $fh "</ol>\n";
+ foreach $varname (sort(keys(%perlvar))) {
+ print $fh "<tr><td>$varname</td><td>$perlvar{$varname}</td></tr>\n";
+ }
+ print $fh "</table><h3>Hosts</h3><table border=2>";
+ foreach $id (sort(keys(%hostname))) {
+ print $fh
+ "<tr><td>$id</td><td>$hostdom{$id}</td><td>$hostrole{$id}</td>";
+ print $fh "<td>$hostname{$id}</td><td>$hostip{$id}</td></tr>\n";
+ }
+ print $fh "</table><h3>Spare Hosts</h3><ol>";
+ foreach $id (sort(keys(%spareid))) {
+ print $fh "<li>$id\n";
+ }
+
+ print $fh "</ol>\n";
# --------------------------------------------------------------------- Machine
+
+ print $fh '<hr><a name="machine"><h2>Machine Information</h2>';
+ print $fh "<h3>loadavg</h3>";
+
+ open (LOADAVGH,"/proc/loadavg");
+ $loadavg=<LOADAVGH>;
+ close (LOADAVGH);
+
+ print $fh "<tt>$loadavg</tt>";
+
+ @parts=split(/\s+/,$loadavg);
+ if ($parts[1]>4.0) {
+ $errors++;
+ } elsif ($parts[1]>2.0) {
+ $warnings++;
+ } elsif ($parts[1]>1.0) {
+ $notices++;
+ }
-print $fh '<hr><a name="machine"><h2>Machine Information</h2>';
-print $fh "<h3>loadavg</h3>";
-
-open (LOADAVGH,"/proc/loadavg");
-$loadavg=<LOADAVGH>;
-close (LOADAVGH);
-
-print $fh "<tt>$loadavg</tt>";
-
-@parts=split(/\s+/,$loadavg);
-if ($parts[1]>4.0) {
- $errors++;
-} elsif ($parts[1]>2.0) {
- $warnings++;
-} elsif ($parts[1]>1.0) {
- $notices++;
-}
-
-print $fh "<h3>df</h3>";
-print $fh "<pre>";
+ print $fh "<h3>df</h3>";
+ print $fh "<pre>";
-open (DFH,"df|");
-while ($line=<DFH>) {
- print $fh "$line";
- @parts=split(/\s+/,$line);
- $usage=$parts[4];
- $usage=~s/\W//g;
- if ($usage>90) {
- $warnings++;
- $notices++;
- } elsif ($usage>80) {
- $warnings++;
- } elsif ($usage>60) {
- $notices++;
- }
- if ($usage>95) { $warnings++; $warnings++; $simplestatus{'diskfull'}++; }
-}
-close (DFH);
-print $fh "</pre>";
+ open (DFH,"df|");
+ while ($line=<DFH>) {
+ print $fh "$line";
+ @parts=split(/\s+/,$line);
+ $usage=$parts[4];
+ $usage=~s/\W//g;
+ if ($usage>90) {
+ $warnings++;
+ $notices++;
+ } elsif ($usage>80) {
+ $warnings++;
+ } elsif ($usage>60) {
+ $notices++;
+ }
+ if ($usage>95) { $warnings++; $warnings++; $simplestatus{'diskfull'}++; }
+ }
+ close (DFH);
+ print $fh "</pre>";
-print $fh "<h3>ps</h3>";
-print $fh "<pre>";
-$psproc=0;
-
-open (PSH,"ps -aux|");
-while ($line=<PSH>) {
- print $fh "$line";
- $psproc++;
-}
-close (PSH);
-print $fh "</pre>";
+ print $fh "<h3>ps</h3>";
+ print $fh "<pre>";
+ $psproc=0;
+
+ open (PSH,"ps -aux|");
+ while ($line=<PSH>) {
+ print $fh "$line";
+ $psproc++;
+ }
+ close (PSH);
+ print $fh "</pre>";
-if ($psproc>200) { $notices++; }
-if ($psproc>250) { $notices++; }
+ if ($psproc>200) { $notices++; }
+ if ($psproc>250) { $notices++; }
-&errout($fh);
+ &errout($fh);
# --------------------------------------------------------------- clean out tmp
-print $fh '<hr><a name="tmp"><h2>Temporary Files</h2>';
-$cleaned=0;
-$old=0;
-while ($fname=<$perlvar{'lonDaemons'}/tmp/*>) {
- my ($dev,$ino,$mode,$nlink,
- $uid,$gid,$rdev,$size,
- $atime,$mtime,$ctime,
- $blksize,$blocks)=stat($fname);
- $now=time;
- $since=$now-$mtime;
- if ($since>$perlvar{'lonExpire'}) {
- $line='';
- if (open(PROBE,$fname)) {
- $line=<PROBE>;
- close(PROBE);
- }
- unless ($line=~/^CHECKOUTTOKEN\&/) {
- $cleaned++;
- unlink("$fname");
- } else {
- if ($since>365*$perlvar{'lonExpire'}) {
- $cleaned++;
- unlink("$fname");
- } else { $old++; }
- }
- }
+ print $fh '<hr><a name="tmp"><h2>Temporary Files</h2>';
+ $cleaned=0;
+ $old=0;
+ while ($fname=<$perlvar{'lonDaemons'}/tmp/*>) {
+ my ($dev,$ino,$mode,$nlink,
+ $uid,$gid,$rdev,$size,
+ $atime,$mtime,$ctime,
+ $blksize,$blocks)=stat($fname);
+ $now=time;
+ $since=$now-$mtime;
+ if ($since>$perlvar{'lonExpire'}) {
+ $line='';
+ if (open(PROBE,$fname)) {
+ $line=<PROBE>;
+ close(PROBE);
+ }
+ unless ($line=~/^CHECKOUTTOKEN\&/) {
+ $cleaned++;
+ unlink("$fname");
+ } else {
+ if ($since>365*$perlvar{'lonExpire'}) {
+ $cleaned++;
+ unlink("$fname");
+ } else { $old++; }
+ }
+ }
-}
-print $fh "Cleaned up ".$cleaned." files (".$old." old checkout tokens).";
+ }
+ print $fh "Cleaned up ".$cleaned." files (".$old." old checkout tokens).";
# ------------------------------------------------------------ clean out lonIDs
-print $fh '<hr><a name="tokens"><h2>Session Tokens</h2>';
-$cleaned=0;
-$active=0;
-while ($fname=<$perlvar{'lonIDsDir'}/*>) {
- my ($dev,$ino,$mode,$nlink,
- $uid,$gid,$rdev,$size,
- $atime,$mtime,$ctime,
- $blksize,$blocks)=stat($fname);
- $now=time;
- $since=$now-$mtime;
- if ($since>$perlvar{'lonExpire'}) {
- $cleaned++;
- print $fh "Unlinking $fname<br>";
- unlink("$fname");
- } else {
- $active++;
- }
-
-}
-print $fh "<p>Cleaned up ".$cleaned." stale session token(s).";
-print $fh "<h3>$active open session(s)</h3>";
+ print $fh '<hr><a name="tokens"><h2>Session Tokens</h2>';
+ $cleaned=0;
+ $active=0;
+ while ($fname=<$perlvar{'lonIDsDir'}/*>) {
+ my ($dev,$ino,$mode,$nlink,
+ $uid,$gid,$rdev,$size,
+ $atime,$mtime,$ctime,
+ $blksize,$blocks)=stat($fname);
+ $now=time;
+ $since=$now-$mtime;
+ if ($since>$perlvar{'lonExpire'}) {
+ $cleaned++;
+ print $fh "Unlinking $fname<br>";
+ unlink("$fname");
+ } else {
+ $active++;
+ }
-# ----------------------------------------------------------------------- httpd
+ }
+ print $fh "<p>Cleaned up ".$cleaned." stale session token(s).";
+ print $fh "<h3>$active open session(s)</h3>";
-print $fh '<hr><a name="httpd"><h2>httpd</h2><h3>Access Log</h3><pre>';
+# ----------------------------------------------------------------------- httpd
-open (DFH,"tail -n25 /etc/httpd/logs/access_log|");
-while ($line=<DFH>) { print $fh "$line" };
-close (DFH);
-
-print $fh "</pre><h3>Error Log</h3><pre>";
-
-open (DFH,"tail -n25 /etc/httpd/logs/error_log|");
-while ($line=<DFH>) {
- print $fh "$line";
- if ($line=~/\[error\]/) { $notices++; }
-};
-close (DFH);
-print $fh "</pre>";
-&errout($fh);
+ print $fh '<hr><a name="httpd"><h2>httpd</h2><h3>Access Log</h3><pre>';
+
+ open (DFH,"tail -n25 /etc/httpd/logs/access_log|");
+ while ($line=<DFH>) { print $fh "$line" };
+ close (DFH);
+
+ print $fh "</pre><h3>Error Log</h3><pre>";
+
+ open (DFH,"tail -n25 /etc/httpd/logs/error_log|");
+ while ($line=<DFH>) {
+ print $fh "$line";
+ if ($line=~/\[error\]/) { $notices++; }
+ };
+ close (DFH);
+ print $fh "</pre>";
+ &errout($fh);
# ---------------------------------------------------------------------- lonsql
-&checkon_daemon($fh,'lonsql',200000);
+ &checkon_daemon($fh,'lonsql',200000);
# ------------------------------------------------------------------------ lond
-&checkon_daemon($fh,'lond',40000,1);
+ &checkon_daemon($fh,'lond',40000,1);
# ------------------------------------------------------------------------ lonc
-&checkon_daemon($fh,'lonc',40000,1);
+ &checkon_daemon($fh,'lonc',40000,1);
# -------------------------------------------------------------------- lonhttpd
-&checkon_daemon($fh,'lonhttpd',40000);
+ &checkon_daemon($fh,'lonhttpd',40000);
# ---------------------------------------------------------------------- lonnet
-print $fh '<hr><a name="lonnet"><h2>lonnet</h2><h3>Temp Log</h3><pre>';
-print "checking logs\n";
-if (-e "$perlvar{'lonDaemons'}/logs/lonnet.log"){
-open (DFH,"tail -n50 $perlvar{'lonDaemons'}/logs/lonnet.log|");
-while ($line=<DFH>) {
- print $fh "$line";
-};
-close (DFH);
-}
-print $fh "</pre><h3>Perm Log</h3><pre>";
-
-if (-e "$perlvar{'lonDaemons'}/logs/lonnet.perm.log") {
- open(DFH,"tail -n10 $perlvar{'lonDaemons'}/logs/lonnet.perm.log|");
-while ($line=<DFH>) {
- print $fh "$line";
-};
-close (DFH);
-} else { print $fh "No perm log\n" }
-
-$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) {
- print $fh "Rotating logs ...<p>";
- rename("$fname.2","$fname.3");
- rename("$fname.1","$fname.2");
- rename("$fname","$fname.1");
-}
+ print $fh '<hr><a name="lonnet"><h2>lonnet</h2><h3>Temp Log</h3><pre>';
+ print "checking logs\n";
+ if (-e "$perlvar{'lonDaemons'}/logs/lonnet.log"){
+ open (DFH,"tail -n50 $perlvar{'lonDaemons'}/logs/lonnet.log|");
+ while ($line=<DFH>) {
+ print $fh "$line";
+ };
+ close (DFH);
+ }
+ print $fh "</pre><h3>Perm Log</h3><pre>";
+
+ if (-e "$perlvar{'lonDaemons'}/logs/lonnet.perm.log") {
+ open(DFH,"tail -n10 $perlvar{'lonDaemons'}/logs/lonnet.perm.log|");
+ while ($line=<DFH>) {
+ print $fh "$line";
+ };
+ close (DFH);
+ } else { print $fh "No perm log\n" }
+
+ $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) {
+ print $fh "Rotating logs ...<p>";
+ rename("$fname.2","$fname.3");
+ rename("$fname.1","$fname.2");
+ rename("$fname","$fname.1");
+ }
-print $fh "</pre>";
-&errout($fh);
+ print $fh "</pre>";
+ &errout($fh);
# ----------------------------------------------------------------- Connections
-print $fh '<hr><a name="connections"><h2>Connections</h2>';
-print "testing connections\n";
-print $fh "<table border=2>";
-foreach $tryserver (sort(keys(%hostname))) {
- print(".");
- $answer=reply("pong",$tryserver);
- if ($answer eq "$tryserver:$perlvar{'lonHostID'}") {
- $result="<b>ok</b>";
- } else {
- $result=$answer;
- $warnings++;
- if ($answer eq 'con_lost') { $warnings++; }
- }
- if ($answer =~ /con_lost/) { print(" $tryserver down\n"); }
- print $fh "<tr><td>$tryserver</td><td>$result</td></tr>\n";
+ print $fh '<hr><a name="connections"><h2>Connections</h2>';
+ print "testing connections\n";
+ print $fh "<table border=2>";
+ foreach $tryserver (sort(keys(%hostname))) {
+ print(".");
+ $answer=reply("pong",$tryserver);
+ if ($answer eq "$tryserver:$perlvar{'lonHostID'}") {
+ $result="<b>ok</b>";
+ } else {
+ $result=$answer;
+ $warnings++;
+ if ($answer eq 'con_lost') { $warnings++; }
+ }
+ if ($answer =~ /con_lost/) { print(" $tryserver down\n"); }
+ print $fh "<tr><td>$tryserver</td><td>$result</td></tr>\n";
-}
-print $fh "</table>";
+ }
+ print $fh "</table>";
-&errout($fh);
+ &errout($fh);
# ------------------------------------------------------------ Delayed messages
-print $fh '<hr><a name="delayed"><h2>Delayed Messages</h2>';
-print "checking buffers\n";
+ print $fh '<hr><a name="delayed"><h2>Delayed Messages</h2>';
+ print "checking buffers\n";
-print $fh '<h3>Scanning Permanent Log</h3>';
+ print $fh '<h3>Scanning Permanent Log</h3>';
-$unsend=0;
-{
- my $dfh=IO::File->new("$perlvar{'lonDaemons'}/logs/lonnet.perm.log");
- while ($line=<$dfh>) {
- ($time,$sdf,$dserv,$dcmd)=split(/:/,$line);
- if ($sdf eq 'F') {
- $local=localtime($time);
- print $fh "<b>Failed: $time, $dserv, $dcmd</b><br>";
- $warnings++;
- }
- if ($sdf eq 'S') { $unsend--; }
- if ($sdf eq 'D') { $unsend++; }
+ $unsend=0;
+ {
+ my $dfh=IO::File->new("$perlvar{'lonDaemons'}/logs/lonnet.perm.log");
+ while ($line=<$dfh>) {
+ ($time,$sdf,$dserv,$dcmd)=split(/:/,$line);
+ if ($sdf eq 'F') {
+ $local=localtime($time);
+ print $fh "<b>Failed: $time, $dserv, $dcmd</b><br>";
+ $warnings++;
+ }
+ if ($sdf eq 'S') { $unsend--; }
+ if ($sdf eq 'D') { $unsend++; }
+ }
}
-}
-print $fh "Total unsend messages: <b>$unsend</b><p>\n";
-$warnings=$warnings+5*$unsend;
+ print $fh "Total unsend messages: <b>$unsend</b><p>\n";
+ $warnings=$warnings+5*$unsend;
-if ($unsend) { $simplestatus{'unsend'}=$unsend; }
-print $fh "<h3>Outgoing Buffer</h3>";
+ if ($unsend) { $simplestatus{'unsend'}=$unsend; }
+ print $fh "<h3>Outgoing Buffer</h3>";
-open (DFH,"ls -lF $perlvar{'lonSockDir'}/delayed|");
-while ($line=<DFH>) {
- print $fh "$line<br>";
-};
-close (DFH);
+ open (DFH,"ls -lF $perlvar{'lonSockDir'}/delayed|");
+ while ($line=<DFH>) {
+ print $fh "$line<br>";
+ };
+ close (DFH);
# ------------------------------------------------------------------------- End
-print $fh "<a name=errcount>\n";
-$totalcount=$notices+4*$warnings+100*$errors;
-&errout($fh);
-print $fh "<h1>Total Error Count: $totalcount</h1>";
-$now=time;
-$date=localtime($now);
-print $fh "<hr>$date ($now)</body></html>\n";
-print "lon-status webpage updated\n";
-$fh->close();
+ print $fh "<a name=errcount>\n";
+ $totalcount=$notices+4*$warnings+100*$errors;
+ &errout($fh);
+ print $fh "<h1>Total Error Count: $totalcount</h1>";
+ $now=time;
+ $date=localtime($now);
+ print $fh "<hr>$date ($now)</body></html>\n";
+ print "lon-status webpage updated\n";
+ $fh->close();
}
if ($errors) { $simplestatus{'errors'}=$errors; }
if ($warnings) { $simplestatus{'warnings'}=$warnings; }
@@ -562,22 +562,21 @@
rename ("$statusdir/newstatus.html","$statusdir/index.html");
{
-my $sfh=IO::File->new(">$statusdir/loncron_simple.txt");
-foreach (keys %simplestatus) {
- print $sfh $_.'='.$simplestatus{$_}.'&';
-}
-print $sfh "\n";
-$sfh->close();
+ my $sfh=IO::File->new(">$statusdir/loncron_simple.txt");
+ foreach (keys %simplestatus) {
+ print $sfh $_.'='.$simplestatus{$_}.'&';
+ }
+ print $sfh "\n";
+ $sfh->close();
}
if ($totalcount>200) {
- print "sending mail\n";
- $emailto="$perlvar{'lonAdmEMail'}";
- if ($totalcount>1000) {
- $emailto.=",$perlvar{'lonSysEMail'}";
- }
- $subj="LON: $perlvar{'lonHostID'} E:$errors W:$warnings N:$notices";
- system(
- "metasend -b -t $emailto -s '$subj' -f $statusdir/index.html -m text/html");
+ print "sending mail\n";
+ $emailto="$perlvar{'lonAdmEMail'}";
+ if ($totalcount>1000) {
+ $emailto.=",$perlvar{'lonSysEMail'}";
+ }
+ $subj="LON: $perlvar{'lonHostID'} E:$errors W:$warnings N:$notices";
+ system("metasend -b -t $emailto -s '$subj' -f $statusdir/index.html -m text/html");
}
1;
--albertel1063309799--