Mrz

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
done

if [[ `apt-get update 2>&1 | grep Get` ]]
then

UPDATES=`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?

Kommentar hinterlassen

You must be logged in to post a comment.

Archiv

Zufällige Bilder

  • Mikado - Weiße Schokolade
  • BrowserSpiel: HaxBall - Fußball trifft Air-Hockey
  • Ersatzakku NB-2LH (Canon 400D)

Kommentare (28 Tage)

Sonstiges


Bloggeramt.de