[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});
}