File:
[LON-CAPA] /
loncom /
build /
Attic /
CHECKRPMS.rhel
Revision
1.1:
download - view:
text,
annotated -
select for diffs
Thu Aug 18 00:11:12 2005 UTC (18 years, 11 months ago) by
raeburn
Branches:
MAIN
CVS tags:
version_2_2_X,
version_2_2_2,
version_2_2_1,
version_2_2_0,
version_2_1_X,
version_2_1_99_3,
version_2_1_99_2,
version_2_1_99_1,
version_2_1_99_0,
version_2_1_3,
version_2_1_2,
version_2_1_1,
version_2_1_0,
version_2_0_X,
version_2_0_99_1,
version_2_0_2,
version_2_0_1,
version_2_0_0,
HEAD
RHEL uses up2date to check for updates. Temporary solution until CHECKRPMSs are amalgamated and distprobe is used to check distro.
1: #!/usr/bin/perl -w
2: #
3: # The LearningOnline Network with CAPA
4: #
5: # Copyright Michigan State University Board of Trustees
6: #
7: # This file is part of the LearningOnline Network with CAPA (LON-CAPA).
8: #
9: # LON-CAPA is free software; you can redistribute it and/or modify
10: # it under the terms of the GNU General Public License as published by
11: # the Free Software Foundation; either version 2 of the License, or
12: # (at your option) any later version.
13: #
14: # LON-CAPA is distributed in the hope that it will be useful,
15: # but WITHOUT ANY WARRANTY; without even the implied warranty of
16: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17: # GNU General Public License for more details.
18: #
19: # You should have received a copy of the GNU General Public License
20: # along with LON-CAPA; if not, write to the Free Software
21: # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22: #
23: # /home/httpd/html/adm/gpl.txt
24: #
25: # http://www.lon-capa.org/
26: #
27: # (Navigate problems for statistical reports
28: #
29:
30: =pod
31:
32: =head1 NAME
33:
34: B<CHECKRPMS> - automated status report about RPMs on a system, Up2date version.
35:
36: =head1 DESCRIPTION
37:
38: This file automates the usage of up2date to check for available updates
39: to RHEL systems.
40:
41: Must be run as root or www.
42:
43: =cut
44:
45: use strict;
46: use lib '/home/httpd/lib/perl/';
47: use LONCAPA::Configuration;
48:
49: my $up2date = '/usr/bin/up2date-nox';
50: my $tmpfile = '/tmp/CHECKRPMS.'.$$;
51:
52: #
53: # Determine who we email
54: my %perlvar=%{LONCAPA::Configuration::read_conf('loncapa.conf')};
55: my $emailto = "$perlvar{'lonAdmEMail'}";
56: my $subj=$perlvar{'lonHostID'};
57: undef(%perlvar);
58:
59: #
60: # Put some nice text in $tmpfile
61: my $hostname = `hostname`;
62: chomp($hostname);
63: open(TMPFILE,">$tmpfile");
64: print TMPFILE localtime(time).' '.$hostname."\n";
65: print TMPFILE <<ENDHEADER;
66: Your system needs to be updated. Please execute (as root)
67:
68: up2date -u --nox
69:
70: to bring it up to date.
71:
72: This is very important for the security of your server. The table below
73: lists the packages which need to be updated.
74:
75: ENDHEADER
76:
77: close(TMPFILE);
78:
79: #
80: # Execute online_update command to check for updates
81: my $up2date_error = 1;
82: if (open (PIPE, "$up2date -l 2>&1 |")) {
83: my @result=<PIPE>;
84: close(PIPE);
85: if (@result > 0) {
86: my $output = join('',@result);
87: if ($output =~ /Fetching Obsoletes list/) {
88: $up2date_error = 0;
89: if ($output =~ /Name\s+Version\s+Rel\s+[\n\r\f]+\-+[\n\r\f]+(.+)/s) {
90: my $packagelist = $1;
91: unless (($packagelist =~ /^The following Packages were marked to be skipped by your configuration:/) || ($packagelist eq '')) {
92: open(TMPFILE,">>$tmpfile");
93: print TMPFILE $packagelist;
94: close(TMPFILE);
95: $subj.= ' RPMS to upgrade';
96: # Send email
97: system(qq{mail -s '$subj' $emailto < $tmpfile});
98: }
99: }
100: }
101: }
102: }
103: if ($up2date_error) {
104: # Send email
105: $subj.= ' Error running RPM update script';
106: system(qq{mail -s '$subj' $emailto < $tmpfile});
107: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>