Übersicht | X-oil | X-tanken | X-dispo | X-wärme | X-lv | X-lvs | Anwendertagung | ThinClients | Teamviewer

Systemvoraussetzungen

Linux-Kommandos

Folgende Linux-Kommandos müssen zur Verfügung stehen:

Befehl Version erforderlich ab X-oil Version erforderlich ab X-tanken Version Bemerkung
GNU CoreUtils ab 6.12 2011-04 Update 2011-01-20 09:34:24
Common Unix Printing System (CUPS) ab 1.7.5 2019-09 - Druck-Server
Samba-Server ab 3.x 2011-04 Update 2011-01-20 09:34:24 Samba-File- und NetBIOS-Name-Server
bc ab 1.06 -
bash ab 3.2.51 - Update 1500 (2021-08-02) Standard-Shell für alle X-energy User inklusive root
curl ab 7.19 - Update 1500 (2021-08-02)
diff ab 2.8.1 2016-08 Update 480 (2016-06-07)
file ab 5.19 - Update 1737 (2016-06-07)
find ab 4.4 2016-08 Update 480 (2016-06-07)
grep ab 2.5.2 2016-08 Update 480 (2016-06-07)
gs ab 8.62 - Update 1500 (2021-08-02)
gunzip ab 1.3.12 2011-04 Update 1500 (2021-08-02)
gzip ab 1.3.12 2011-04 Update 2011-01-20 09:34:24
htop ab 1.0.3 2019-09 -
ksh
locate ab 0.26 2019-09 -
mail ab 12.2 (mailx) oder ab 3.10 (mailutils) - Update 1500 (2021-08-02) Der Mailversand sollte Massenmail tauglich konfiguriert werden
mutt ab 1.5.21 - Update 1500 (2021-08-02) Der Mailversand sollte Massenmail tauglich konfiguriert werden
net-tools ab 1.60 - Update 1500 (2021-08-02)
pdf2pdf ab 4.12.26 - Update 1500 (2021-08-02) Beachten Sie die Hinweise zur PDF-Erzeugung
pdftk ab 1.44 - Update 1500 (2021-08-02) Beachten Sie die Hinweise zur PDF-Erzeugung
pdxt ab 4.12.26 - Update 1500 (2021-08-02) Beachten Sie die Hinweise zur PDF-Erzeugung
perl ab 5.8.8 2016-08 Update 480 (2016-06-07)
ps ab 3.2.7 2016-08 Update 480 (2016-06-07)
pstree ab 22.6 - Update 1500 (2021-08-02)
qpdf ab 8.4 - Update 1500 (2021-08-02) Beachten Sie die Hinweise zur PDF-Erzeugung
sed ab 4.1.5 - Update 1500 (2021-08-02)
shasum ab 5.45 2016-08 Update 480 (2016-06-07)
tar ab 1.20 2011-04 Update 2011-01-20 09:34:24
top ab 3.2.7 - Update 1500 (2021-08-02)
wget ab 1.11.4 - Update 1500 (2021-08-02)
xmllint ab libxml 20706 - Update >1515

Durch Anhängen der Option –version, -v oder -V oder alleine durch Eingabe des Befehls können Sie in der Regel die Version eines Befehls ermitteln:

<Befehl> --version
<Befehl> -v
<Befehl> -V
<Befehl>

also zum Beispiel:

bash --version
mail -V
top -v
pdf2pdf

Alternativ können Sie das folgende Script verwenden um die Versionen prüfen zu lassen:

check_versions.sh
#!/bin/bash
# Script zur Ermittlung der korrekten Befehls-/Programmversionen
# (Script immer mit root-Rechten ausführen!)
# (c) Copyright by Xpoint Software GmbH

if [ $UID -ne 0 ]
then
    echo -e "\033[38;5;196m Fehler! Script mit root-Rechten ausführen!\033[0m"
    exit
fi
print_status() {
    text="${1:-text}"
    cols="$(tput cols)"
    pad="$((cols - 1 - ${#text} - 1 - 6 - 1))"
    padding="."
    for fnord in $(seq "$pad"); do
       padding="$padding."
    done
    if [ $2 == "0" ]
    then
        echo -e "$text$padding\033[38;5;46m [GOOD]\033[0m"
    else
        if [ $2 == "1" ]
        then
            echo -e "$text$padding\033[38;5;226m [ OK ]\033[0m"
        else
            if [ $2 == "2" ]
            then
                echo -e "$text$padding\033[38;5;32m [TEST]\033[0m"
            else
                echo -e "$text$padding\033[38;5;196m [FAIL]\033[0m"
            fi
        fi
    fi
}
calc_versions() {
    regex='^[0-9]+$'
    major=$(echo $2 |cut -d. -f1)
    if ! [[ $major =~ $regex ]]
    then
        major=0
    fi
    minor=$(echo $2 |cut -d. -f2)
    if ! [[ $minor =~ $regex ]]
    then
        minor=0
    fi
    build=$(echo $2 |cut -d. -f3)
    if ! [[ $build =~ $regex ]]
    then
        build=0
    fi
    majormin=$(echo $3 |cut -d. -f1)
    if ! [[ $majormin =~ $regex ]]
    then
        majormin=0
    fi
    minormin=$(echo $3 |cut -d. -f2)
    if ! [[ $minormin =~ $regex ]]
    then
        minormin=0
    fi
    buildmin=$(echo $3 |cut -d. -f3)
    if ! [[ $buildmin =~ $regex ]]
    then
        buildmin=0
    fi
    majormax=$(echo $4 |cut -d. -f1)
    if ! [[ $majormax =~ $regex ]]
    then
        majormax=0
    fi
    minormax=$(echo $4 |cut -d. -f2)
    if ! [[ $minormax =~ $regex ]]
    then
        minormax=0
    fi
    buildmax=$(echo $4 |cut -d. -f3)
    if ! [[ $buildmax =~ $regex ]]
    then
        buildmax=0
    fi
    ver=$(bc -l <<<"$major*1000000000000+$minor*1000000+$build")
    vermin=$(bc -l <<<"$majormin*1000000000000+$minormin*1000000+$buildmin")
    vermax=$(bc -l <<<"$majormax*1000000000000+$minormax*1000000+$buildmax")
    if [ $5 -ne 0 ]
    then
        result=3
    else
        if [ $ver -lt $vermin ]
        then
            result=2
        else
            if [ $ver -gt $vermax ]
            then
                result=2
            else
                if [ $ver -lt $vermax ]
                then
                    result=1
                else
                    result=0
                fi
            fi
        fi
    fi
    version=$(echo $2 |sed -e "s/_/ /g")
    printf -v prg '%-12s: ' $1
    print_status " $prg$version (Soll: $3-$4) " $result
}
check_cmd() {
    if [ "$1" = "net-tools" ]
    then
        cmd=$(which "netstat" 2>/dev/null)
    else
        cmd=$(which $1 2>/dev/null)
    fi
    if [ ! -e "$cmd" ]
    then
        calc_versions $1 "nicht_gefunden" $2 $3 1
    else
        calc_versions $1 $4 $2 $3 0
    fi
}
echo " Linux CoreUtils:"
echo " ================"
check_cmd "basename" "6.12" "9.1" $(basename --version 2>/dev/null |grep basename |sed -e "s/basename (GNU coreutils) //g" |cut "-d " -f1)
check_cmd "cat" "6.12" "9.1" $(cat --version 2>/dev/null |grep cat |sed -e "s/cat (GNU coreutils) //g" |cut "-d " -f1)
check_cmd "chmod" "6.12" "9.1" $(chmod --version 2>/dev/null |grep chmod |sed -e "s/chmod (GNU coreutils) //g" |cut "-d " -f1)
check_cmd "chown" "6.12" "9.1" $(chown --version 2>/dev/null |grep chown |sed -e "s/chown (GNU coreutils) //g" |cut "-d " -f1)
check_cmd "cp" "6.12" "9.1" $(cp --version 2>/dev/null |grep cp |sed -e "s/cp (GNU coreutils) //g" |cut "-d " -f1)
check_cmd "cut" "6.12" "9.1" $(cut --version 2>/dev/null |grep cut |sed -e "s/cut (GNU coreutils) //g" |cut "-d " -f1)
check_cmd "date" "6.12" "9.1" $(date --version 2>/dev/null |grep date |sed -e "s/date (GNU coreutils) //g" |cut "-d " -f1)
check_cmd "df" "6.12" "9.1" $(df --version 2>/dev/null |grep df |sed -e "s/df (GNU coreutils) //g" |cut "-d " -f1)
check_cmd "du" "6.12" "9.1" $(du --version 2>/dev/null |grep du |sed -e "s/du (GNU coreutils) //g" |cut "-d " -f1)
check_cmd "ln" "6.12" "9.1" $(ln --version 2>/dev/null |grep ln |sed -e "s/ln (GNU coreutils) //g" |cut "-d " -f1)
check_cmd "ls" "6.12" "9.1" $(ls --version 2>/dev/null |grep ls |sed -e "s/ls (GNU coreutils) //g" |cut "-d " -f1)
check_cmd "mkdir" "6.12" "9.1" $(mkdir --version 2>/dev/null |grep mkdir |sed -e "s/mkdir (GNU coreutils) //g" |cut "-d " -f1)
check_cmd "mv" "6.12" "9.1" $(mv --version 2>/dev/null |grep mv |sed -e "s/mv (GNU coreutils) //g" |cut "-d " -f1)
check_cmd "rm" "6.12" "9.1" $(rm --version 2>/dev/null |grep "rm " |sed -e "s/rm (GNU coreutils) //g" |cut "-d " -f1)
check_cmd "wc" "6.12" "9.1" $(wc --version 2>/dev/null |grep wc |sed -e "s/wc (GNU coreutils) //g" |cut "-d " -f1)
echo ""
echo " Common Unix Printing System (CUPS):"
echo " ==================================="
check_cmd "cups-config" "1.7.5" "2.3.3" $(cups-config --version 2>/dev/null |sed -e "s/op2//g"|cut "-d " -f1)
check_cmd "cups" "2.3.3" "2.3.3" $(apt policy cups 2>/dev/null | grep -i "Installiert:" | cut "-d " -f2)
echo ""
echo " Samba-Server:"
echo " ============="
check_cmd "smbd" "3.0" "4.17.10" $(smbd --version 2>/dev/null |sed -e "s/Version //g" -e "s/-Ubuntu//g" -e "s/-/ /g" |cut "-d " -f1)
check_cmd "nmbd" "3.0" "4.17.10" $(nmbd --version 2>/dev/null |sed -e "s/Version //g" -e "s/-Ubuntu//g" -e "s/-/ /g" |cut "-d " -f1)
echo ""
echo " Weitere Befehle/Softwarepakete:"
echo " ==============================="
check_cmd "bash" "3.2.51" "5.2.15" $(bash --version 2>/dev/null |grep bash |sed -e "s/GNU bash, version //g" -e "s/GNU bash, Version //g" -e "s/(/ /g" |cut "-d " -f1)
check_cmd "curl" "7.19" "8.0.1" $(curl --version 2>/dev/null |grep curl |sed -e "s/curl //g" |cut "-d " -f1)
check_cmd "diff" "2.8.1" "3.8" $(diff --version 2>/dev/null |grep diff |sed -e "s/diff (GNU diffutils) //g" -e "s/-cvs//g" |cut "-d " -f1)
check_cmd "file" "5.19" "5.44" $(file --version 2>/dev/null |grep file- |sed -e "s/file-//g" |cut "-d " -f1)
check_cmd "find" "4.4" "4.9.0" $(find --version 2>/dev/null |grep find |sed -e "s/find (GNU findutils) //g" |cut "-d " -f1)
check_cmd "grep" "2.5.2" "3.8" $(grep --version 2>/dev/null |grep grep |grep -v "Geschrieben von" |grep -v "Written" |sed -e "s/grep (GNU grep) //g" -e "s/GNU grep //g" |cut "-d " -f1)
check_cmd "gs" "8.62" "10.0.0" $(gs --version 2>/dev/null |cut "-d " -f1)
check_cmd "gunzip" "1.3.12" "1.12" $(gunzip --version 2>/dev/null |sed -e "s/gzip/gunzip/g" |grep gunzip |sed -e "s/gunzip (gunzip) //g" -e "s/gunzip //g" |cut "-d " -f1)
check_cmd "gzip" "1.3.12" "1.12" $(gzip --version 2>/dev/null |grep gzip |sed -e "s/gzip //g" |cut "-d " -f1)
check_cmd "htop" "1.0.3" "3.2.2" $(htop --version 2>/dev/null |grep htop |sed -e "s/htop //g" |cut "-d " -f1)
check_cmd "locate" "0.26" "0.26" $(locate --version 2>/dev/null |grep locate |sed -e "s/mlocate //g" |cut "-d " -f1)
man mail |head -n1 |grep -i "mailx" >/dev/null 2>&1
if [ "$?" == "0" ]
then
    check_cmd "mail" "12.2" "12.5" $(mail -V 2>/dev/null |cut "-d " -f1)
else
    check_cmd "mail" "3.10" "3.15" $(mail --version 2>/dev/null |sed -e "s/mail (GNU Mailutils) //g")
fi
check_cmd "mutt" "1.5.17" "2.2.12" $(mutt -v 2>/dev/null |grep "Mutt" |grep "(20" |sed -e "s/Mutt //g" |cut "-d " -f1)
check_cmd "net-tools" "1.60" "2.10" $(netstat --version 2>/dev/null |grep "net\-tools" |sed -e "s/net\-tools //g" -e "s/\-/ /g" |cut "-d " -f1)
check_cmd "pdf2pdf" "4.12.26" "4.12.26" $(pdf2pdf 2>/dev/null |grep "Convert PDF to PDF/A documents. Version " |sed -e "s/Convert PDF to PDF\/A documents. Version //g" |cut "-d " -f1)
check_cmd "pdftk" "1.44" "3.3.2" $(pdftk --version 2>/dev/null |grep pdftk |grep -v Copyright |grep -v "includes a modified version" |sed -e "s/pdftk port to java //g" -e "s/pdftk //g" -e "s/.0/./g" |cut "-d " -f1)
check_cmd "pdxt" "4.12.26" "4.12.26" $(pdxt 2>/dev/null |grep "Add a logo (XObject) to a PDF file. Version " |sed -e "s/Add a logo (XObject) to a PDF file. Version //g" |cut "-d " -f1)
check_cmd "perl" "5.8.8" "5.36.0" $(perl --version 2>/dev/null |grep perl |grep built |sed -e "s/This is perl //g" -e "s/This is perl, v//g" -e "s/, version /./g" -e "s/, subversion /./g" |cut "-d " -f1)
check_cmd "ps" "3.2.7" "4.0.2" $(ps --version 2>/dev/null |sed -e "s/procps-ng version //g" -e "s/ps von procps-ng //g" -e "s/ps from procps-ng //g" -e "s/procps version //g" |cut "-d " -f1)
check_cmd "pstree" "22.6" "23.6" $(pstree -V 2>&1 |grep pstree |sed -e "s/pstree (PSmisc) //g" |cut "-d " -f1)
check_cmd "qpdf" "8.4" "11.3.0" $(qpdf --version 2>/dev/null |grep qpdf |sed -e "s/qpdf version //g" |cut "-d " -f1)
check_cmd "sed" "4.1.5" "4.9" $(sed --version 2>/dev/null |grep "GNU sed" |sed -e "s/sed (GNU sed) //g" -e "s/GNU sed version //g" -e "s/GNU sed Version //g" -e "s/GNU sed-Version //g" -e "s/GNU//g" |cut "-d " -f1)
check_cmd "shasum" "5.45" "6.2" $(shasum --version 2>/dev/null |cut "-d " -f1)
check_cmd "tar" "1.20" "1.34" $(tar --version 2>/dev/null |grep tar |sed -e "s/tar (GNU tar) //g" |cut "-d " -f1)
check_cmd "wget" "1.11.4" "1.21.3" $(wget --version 2>/dev/null |grep "GNU Wget" |sed -e "s/GNU Wget //g" |cut "-d " -f1)
check_cmd "xmllint" "20706" "20914" $(xmllint --version 2>&1 |grep "xmllint: using libxml version" |sed -e "s/xmllint: using libxml version//g")
echo ""
echo " top (einer sollte funktionieren):"
echo " ================================="
check_cmd "top" "3.2.7" "4.0.2" $(top -v 2>/dev/null |grep "procps" |sed -e "s/  procps-ng version //g" -e "s/top: procps version //g" -e "s/  procps-ng //g" |cut "-d " -f1)
check_cmd "top" "3.2.7" "4.0.2" $(top --version |grep "top from procps-ng" |sed -e "s/top from procps-ng //g")
echo ""
echo " Legende:"
echo " ========"
echo -e "\033[38;5;46m [GOOD]\033[0m - Sie nutzen die beste von uns getestete Version"
echo -e "\033[38;5;226m [ OK ]\033[0m - Sie nutzen eine von uns geteste Version"
echo -e "\033[38;5;32m [TEST]\033[0m - Sie nutzen eine Version die noch nicht getestet wurde"
echo -e "          Bitte wenden Sie sich umgehend an den Support von Xpoint"
echo -e "          und lassen Sie diese Version überprüfen"
echo -e "\033[38;5;196m [FAIL]\033[0m - Das Programm wurde nicht gefunden"

Kopieren Sie das Script auf den Linux-Server, setzen Sie mit die Ausführrechte (rwxr-xr-x), konvertieren Sie die Zeilenumbrüche von DOS nach Linux und starten Sie das Script mit root-Rechten:

 chmod 755 check_versions.sh
 dos2unix check_versions.sh
./check_versions.sh

Es wird Ihnen detailliert aufgeführt, welche Befehle Ihre Aufmerksamkeit erfordern.


Übersicht | X-oil | X-tanken | X-dispo | X-wärme | X-lv | X-lvs | Anwendertagung | ThinClients | Teamviewer