16
Debian: Vergessene Updates die zweite…
Hatte die Tage „mein“ Skript nochmals etwas nachgebessert und herausgekommen ist folgende Variante:
#!/bin/bash
#
# Cron Script – run from /etc/crontab or /etc/cron.daily
#
# Checks if an update is available and sends an e-mail
#
# Author: http://www.renemoser.net/archives/190
# Modified by: http://blog.splash.de# Default: Show messages on console
QUIET=0
MAIL_TO=““# check parameters
while [ $# -gt 0 ]
do
case „$1“ in
–quiet)
QUIET=1
;;
–mailto)
# get next param
shift
# check at least if it contains @
if [ `echo $1 | awk ‚/@/’` ]
then
MAIL_TO=$1
else
echo „–mailto expects an e-mail“
exit 1
fi
;;
–help)
echo „usage: apt_notify [–quiet] [–mailto email@dot.com]“
echo „–quiet [quiet mode, no output to console]“
echo „–mailto email@dot.com [send output via email]“
exit 0
;;
esac
shift
doneif [[ `apt-get update 2>&1 | grep Get` ]]
thenUPDATES=`apt-get -s dist-upgrade 2>&1 | awk ‚/Inst/{n++}; END {print n+0}’`
if [ $UPDATES -ne 0 ]
then
PACKAGES=`apt-get -s dist-upgrade 2>&1 | awk ‚/^(Inst)/ {sub(/^Inst+/, „+++“); print}’`
if [ -n $MAIL_TO ]
then
echo „These packages need an update on `hostname`:$PACKAGES\n
Please perform ‚apt update && apt upgrade‘ as root“ | mailx -s „[`hostname`] $UPDATES update(s) available“ $MAIL_TO
fi
if [ $QUIET -ne 1 ]
then
echo „These packages need an update on `hostname`:
$PACKAGES“
fi
fi
fi
exit 0
Mir gehts im Grunde nicht um die Skript ansich, sondern viel mehr darum ein bischen mehr „bashen“ zu lernen… Jemand ne Idee zur geschickteren Umsetzung der Parameterangaben?