yumnotifier
10:26 PM#!/bin/sh ## Program: E-mail available yum updates <yumnotifier>## Author: latheef < latheefctx at gmail dot com >## Current Version: 1.2## Revision History:##  Version 1.2#    - Removed ! from if statement - John Beaman#    - Changed comments to reference "yumnotifier", not#      "yumupdate" -- John Beaman##  Version 1.1#    - Switched test statement to use "-s" - Luca Rozza##  Version 1.0#    Initial Release## Last Updated: 10-24-2007## Purpose:#   yumnotifier checks for updated software package, and E-mails the#   address defined in the ${ADMIN} variable if updates are available.## License:#   This program 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.## Installation:#   Copy the shell script to a suitable location## Usage:#   To check for new updates each day at midnight, a cron job similar to the#   following can be used:##   $ crontab -l | grep yumnotifier#   0 0 * * * /etc/scripts/yumnotifier## Sample output#   An E-mail similar to the following is sent if updates are available:##   From root@localhost.localdomain  Sat Jul 15 19:24:59 2006#   Date: Sat, 15 Jul 2006 19:24:59 -0400#   From: root <root@localhost.localdomain>#   To: matty@localhost.localdomain#   Subject: Updates available for biscuit#  #   ==== The following updates are available for biscuit ===#  #   comps.i386                               2:4.3CENTOS-0.20060314 base            #   gtk2.i386                                2.4.13-18              base            #   kernel.i686                              2.6.9-34.0.2.EL        update          #   libtiff.i386                             3.6.1-10               update          #   mysql.i386                               4.1.20-1.RHEL4.1       update          #   mysql-devel.i386                         4.1.20-1.RHEL4.1       update          #   newt.i386                                0.51.6-7.rhel4         base            #   php.i386                                 4.3.9-3.15             update          #   php-ldap.i386                            4.3.9-3.15             update          #   php-pear.i386                            4.3.9-3.15             update          #   postgresql-libs.i386                     7.4.13-2.RHEL4.1       update          #   rpmdb-CentOS.i386                        2:4.3-0.20060314       base            #   sendmail.i386                            8.13.1-3.RHEL4.5       update          #   sendmail-cf.i386                         8.13.1-3.RHEL4.5       update          #   spamassassin.i386                        3.0.6-1.el4            update          #   vixie-cron.i386                          4:4.1-44.EL4           update          #   xorg-x11-Mesa-libGL.i386                 6.8.2-1.EL.13.25.1     update          #   xorg-x11-font-utils.i386                 6.8.2-1.EL.13.25.1     update          #   xorg-x11-libs.i386                       6.8.2-1.EL.13.25.1     update          #   xorg-x11-xauth.i386                      6.8.2-1.EL.13.25.1     update          #   xorg-x11-xfs.i386                        6.8.2-1.EL.13.25.1     update        PATH=/bin:/usr/bin:/sbin:/usr/sbinexport PATH# Locations of binariesGREP="/bin/grep"HOST=`hostname`MAIL="/bin/mail"MKTEMP="/bin/mktemp"YUM="/usr/bin/yum"# Who to E-mail with new updatesADMIN="matty"if [ ! -f ${YUM} ]then        echo "Cannot find ${YUM}"        exit 1fiif [ ! -f ${MKTEMP} ]then        echo "Cannot find ${MKTEMP}"        exit 1fiif [ ! -f ${MAIL} ]then        echo "Cannot find ${MAIL}"        exit 1fiif [ ! -f ${GREP} ]then        echo "Cannot find ${GREP}"        exit 1fi# Dump the yum results to a safe working fileWORK=`${MKTEMP} /tmp/yum.results.XXXXXX`${YUM} -e0 -d0 check-update > ${WORK}# If there are updates available, E-mail themif [ -s ${WORK} ]then        REPORT=`${MKTEMP} /tmp/yum.report.XXXXXX`        echo "==== The following updates are available for ${HOST} ===" > ${REPORT}        cat ${WORK} >> ${REPORT}        cat ${REPORT} | ${MAIL} -s "Updates available for ${HOST}" ${ADMIN}fi# Cleanup temporary filesrm ${REPORT} ${WORK}
0 comments