[LON-CAPA-cvs] cvs: loncom /build CHECKRPMS.sles10

raeburn lon-capa-cvs@mail.lon-capa.org
Fri, 22 Sep 2006 20:12:10 -0000


raeburn		Fri Sep 22 16:12:10 2006 EDT

  Added files:                 
    /loncom/build	CHECKRPMS.sles10 
  Log:
  rpm update checking for SLES10.  Expect this to only have a short life, as ia unified CHECKRPMS will replace this (and CHECKRPMS.*) really soon now.
  
  

Index: loncom/build/CHECKRPMS.sles10
+++ loncom/build/CHECKRPMS.sles10
#!/usr/bin/perl -w
#
# The LearningOnline Network with CAPA
#
# Copyright Michigan State University Board of Trustees
#
# This file is part of the LearningOnline Network with CAPA (LON-CAPA).
#
# LON-CAPA is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# LON-CAPA is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LON-CAPA; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#
# /home/httpd/html/adm/gpl.txt
#
# http://www.lon-capa.org/
#

=pod

=head1 NAME

B<CHECKRPMS> - automated status report about RPMs on a system, rug version.

=head1 DESCRIPTION

This file automates the usage of yum to check for available updates
to SLES10 systems.

Must be run as root or www.

=cut

use strict;
use lib '/home/httpd/lib/perl/';
use LONCAPA::Configuration;

my $rug = '/usr/bin/rug';
my $tmpfile = '/tmp/CHECKRPMS.'.$$;

#
# Determine who we email
my %perlvar=%{LONCAPA::Configuration::read_conf('loncapa.conf')};
my $emailto = "$perlvar{'lonAdmEMail'}";
my $subj=$perlvar{'lonHostID'};
undef(%perlvar);

#
# Put some nice text in $tmpfile
my $hostname = `hostname`;
chomp($hostname);
open(TMPFILE,">$tmpfile");
print TMPFILE localtime(time).'    '.$hostname."\n";
print TMPFILE <<ENDHEADER;
Your system needs to be updated.  Please execute (as root) 

rug up

to bring it up to date.

This is very important for the security of your server.  The table below
lists the packages which need to be updated.

ENDHEADER

close(TMPFILE);

#
# Execute rug command to check for updates 
if (open (PIPE, "$rug up -N en 2>&1 |")) {
    my $output=<PIPE>;
    close(PIPE);
    chomp $output;
    unless ($output eq 'No updates are available.') {
        open(TMPFILE,">>$tmpfile");
        print TMPFILE $output;
        close(TMPFILE);

        $subj.= ' RPMS to upgrade';
        # Send email
        system(qq{mail -s '$subj' $emailto < $tmpfile});
     }
} else {
    # Send email
    $subj.= ' Error running RPM update check';
    system(qq{mail -s '$subj' $emailto < $tmpfile});
}