检查或安装 Yum 更新的脚本
一系列由 cron 执行的脚本,用来检查或安装 yum 更新并将结果邮寄。
主脚本是 /usr/bin/yum-check。 被 cron 执行的脚本是 /etc/cron.daily/yum.cron。 这两个脚本从 /etc/sysconfig/yum-check 档中取得选项。
/usr/bin/yum-check:
#
# Name: yum-check
# Author: Michael Heiming - 2005-03-11
# Function: Run from cron to check for yum updates
# and mail results
# Version: 0.7 (initial)
# 2005-03-12 0.8 randomize startup (cron only)
# Config: /etc/sysconfig/yum
# Pull in sysconfig settings
. /etc/sysconfig/yum-check
maila=${MAILTO:=root}
yumdat="/tmp/yum-check-update.$$"
yumb="/usr/bin/yum"
# wait a random interval if there is not a controlling terminal,
# for load management
if ! [ -t ]
then
num=$RANDOM
let "num %= ${RANGE:=1}"
sleep $num
fi
rm -f ${yumdat%%[0-9]*}*
$yumb check-update >& $yumdat
yumstatus="$?"
case $yumstatus in
100)
cat $yumdat |\
mail -s "Alert ${HOSTNAME} updates available!" $maila
exit 0
;;
0)
# Only send mail if debug is turned on
if [ ${CHECKWRK} = "yes" ];then
cat $yumdat |\
mail -s "Yum check succeeded ${HOSTNAME} zero patches
available." $maila
fi
exit 0
;;
*)
# Unexpected yum return status
(echo "Undefined, yum return status: ${yumstatus}" && \
[ -e "${yumdat}" ] && cat "${yumdat}" )|\
mail -s "Alert ${HOSTNAME} problems running yum." $maila
esac
[ -e "${yumdat}" ] && rm ${yumdat}/etc/cron.daily/yum.cron:
# Pull in sysconfig settings
. /etc/sysconfig/yum-check
if [ -f /var/lock/subsys/yum ]; then
if [ ${CHECKONLY} = "yes" ];then
/usr/bin/yum-check
fi
else
/usr/bin/yum -R 10 -e 0 -d 0 -y update yum
/usr/bin/yum -R 120 -e 0 -d 0 -y update
fi/etc/sysconfig/yum-check:
# yes sets yum to check for updates and mail only if patches are available # no does enable autoupdate if /var/lock/subsys/yum is available CHECKONLY="yes" # defaults to root, leave empty if .forward/alias in place for root MAILTO="" # Set to yes for debugging only! You'll get a mail for each run! CHECKWRK="no" # Seconds to randomize startup, if running from cron to balance load RANGE="3600"
Translation of revision 3