[Eisfair] Fragen

Hilmar Böhm hilmar.boehm at web.de
Mo Jun 13 12:40:34 CEST 2016


Hallo,

erstmal vieelen Dank für das Skript! Prima!
Ich habe aber noch ein paar kleine Probleme damit, wobei ich nicht weiß, 
ob die u.a. Version die letzte ist (wenn nicht, bitte Info, und sorry):

1. Das Skript zeigt bei mir 1 upgradable package, auch wenn lt "Setup" 
keines vorhanden ist.

2. Um das Skript zu testen, habe ich jedes Mal vorher die 
"/tmp/update-chk.dat" Datei gelöscht. Das Skript läuft auf meinem System 
ca. zweieinhalb Minuten, nach dem Upgrade auf Base 2.7.4 und einem 
Reboot waren es sogar gut _vier_einhalb Minuten.

Das ist für einen (kurzen) Check bei Einloggen zu lange. Deshalb würde 
ich mir einen Cronjob für diesen Check wünschen. Btw. ich setze (wie 
schon gesagt) _s_smtp ein (aus dem EIS-Rep.); das ist auch ein send-only 
Mailtransferagent.

Besteht eine Chance für so einen Hintergrundjob.

3. Wenn ich das Skript mit ^C abbreche, ist offensichtlich dennoch die 
"/tmp/update-chk.dat"-Datei geschrieben worden. Wenn das System während 
der Ausführung des Skripts crasht, wird der nächste Check erst 1 Tag 
später ausgeführt.

Grüße. / Hilmar.


Am 09.06.2016 um 23:26 schrieb Helmut Backhaus:
> 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!!
>
>



Mehr Informationen über die Mailingliste Eisfair