[Eisfair] Fragen
Helmut Backhaus
helmut.backhaus at gmx.de
Do Jun 9 23:26:23 CEST 2016
Hallo Marcus!
Am 09.06.2016 um 22:34 schrieb Marcus Roeckrath:
> Hallo Helmut,
>
> Helmut Backhaus wrote:
>
>> Nicht drängeln! :-))
>
> Natürlich nicht; es gilt - wie immer - Weihnachten.
Dann müssen wir uns nur noch auf's Jahr einigen ...
>
>> Ich bin eigentlich fertig, aber da ist noch ein blöder Fehler drin. Ich
>> bin aber wohl auf dem Richtigen Weg ...
>
> Du kannst uns ja am aktuellen Stand teilhaben, um nach dem blöden Fehler zu
> suchen.
>
Nur ruhig, ich glaube ich habe fertig!
Das folgende Script habe ich unter unter "/usr/local/bin/update-chk.sh"
abgelegt und Ausführbar gemacht "chmod +x /usr/local/bin/update-chk.sh".
Dann habe ich einen Eintrag in die Datei "/etc/profile" in die Zeile 38
hinter:
if [ ${LOGNAME} = root ]
then
--> source /usr/local/bin/update-chk.sh
gemacht!
Damit wird, wenn eine Konsole als root geöffnet wird, dass Script
gestartet. Eine Ausgabedatei wird in "/tmp/update-chk.dat" abgelegt. Auf
Basis dieser Datei wird auch geprüft, ob eine Prüfung durchgefüht wird.
Ich habe den Wert auf einmal am Tag gesetzt "tcheck=$((60*60*24))". Wenn
gewünscht kann dieser Wert auch auf z.B. "tcheck=$((60*60*24*7)) gesetzt
werde (eine Woche).
Ich habe mich für diesen Weg entschieden, weil "mail" nicht zu den
Bordmitteln gehört (oder habe ich da etwas übersehen?). Das Script läuft
also "out of the box"!
Eine Mail-Variante habe ich auch noch in der Pipeline aber das kann ich
nicht testen, weil ich keinen Eis 1 mit Mail habe. Das muss ich mir dann
erst mal installieren.
OK, genug geschwafelt! Hier das Script:
Bitte mit den Umbrüchen aufpassen!!!
-->
#!/bin/bash
########################################################################
# update-chk.sh
# ein mini Script um auf einem Eisfair 1 beim log in als root zu prüfen
# ob upgrades für den Server vorliegen.
# Das Script kann in die Datei "/etc/profile" eingebunden werden um es
# beim login ausführen zu lassen.
#
# Ich habe es in Zeile 38 hinter:
# if [ ${LOGNAME} = root ]
# then
# source /usr/local/bin/update-chk.sh
# eingebunden!
# So wird es nur beim Login als root gestartet und das auch nur einmal
# Täglich.
#
# Autor : Helmut Backhaus
# Erstell am: 09.06.2016
# Geändert am: 09.06.2016
# Version : 0.0.1
########################################################################
# set -xv
ausgabe()
{
sed -i '/WARNING/d' $chkfile
lastcheck=$(cat $chkfile | grep -i 'last check')
sed -i '1d' $chkfile
count=$(cat $chkfile | wc -l)
if [ $count -gt 0 ] ; then
/usr/local/bin/colecho "There are $count upgradable packages
available!" rd
/usr/local/bin/colecho "For more info run Setup!" rd
echo
else
/usr/local/bin/colecho "There are no upgradable packages available!" gn
/usr/local/bin/colecho "Your System is fine!" gn
echo
fi
}
chkfile="/tmp/update-chk.dat"
tnow=$(date "+%s")
tcheck=$((60*60*24))
if ! [ -f $chkfile ] ; then
/usr/local/bin/colecho "There is no chk file for upgrade check" gn
/usr/local/bin/colecho "Will be done, please wait ..." gn
echo
/var/install/bin/list-packages --batch upgradable > $chkfile
ausgabe
checkvar="yes"
else
tdatei=$(stat -c %Z $chkfile)
alter=$(( $tnow - $tdatei ))
fi
if [ -z $checkvar ] && [ $alter -ge $tcheck ] ; then
rm $chkfile
/usr/local/bin/colecho "Upgrade check will be done!" gn
/usr/local/bin/colecho "Please wait ..." gn
echo
/var/install/bin/list-packages --batch upgradable > $chkfile
ausgabe
else
if [ -z $checkvar ] && [ -n $alter ] ; then
/usr/local/bin/colecho "Updates are allready checked today!" gn
echo
fi
fi
<--
Wie immer feedback Erwünscht!!
--
Gruß,
Helmut
Mehr Informationen über die Mailingliste Eisfair