Hallo zusammen,

 

ich habe hier einen zu überwachenden Host mit Suse Linux 9.1 und GNU bash 
2.05b.0. Der Check_MK Raw Server soll via SSH auf den Agent zugreifen. Beim 
Servicescan meldet WATO allerdings: "Service discovery failed for this host: 
Agent exited with code 2:". Wenn ich den Agent lokal mit 
"/usr/bin/check_mk_agent -d" aufrufe, kommt folgender Fehler:

 

/usr/bin/check_mk_agent: line 936: conditional binary operator expected

/usr/bin/check_mk_agent: line 936: syntax error near `=~'

/usr/bin/check_mk_agent: line 936: `        if [[ $cmdline =~ $pattern ]]'

 

Im Agent geht es dabei um diese Prüfung:

 

# NOTE: Due to an escaping-related bug in some old bash versions

        # (3.2.x), we have to use an intermediate variable for the pattern.

        pattern='\(([^\)]*)\)[[:space:]](.*)'

        if [[ $cmdline =~ $pattern ]]

        then

 

Durch den Fehler wird auch verhindert, dass Local Checks erkannt und ausgeführt 
werden:

 

function is_valid_plugin () {

    # NOTE: Due to an escaping-related bug in some old bash versions

    # (3.2.x), we have to use an intermediate variable for the pattern.

    pattern='\.dpkg-(new|old|temp)$'

    [[ -f "$1" && -x "$1" && ! "$1" =~ $pattern ]] && true || false

}

 

Ich denke die veraltete Bash kann nichts mit dem Regex Operator anfangen. Gibt 
es eine Möglichkeit, diese Pattern-Prüfung für Urgesteine umzuschreiben oder 
ggf. zu deaktivieren?

 

Gruß

Jens

_______________________________________________
checkmk-de mailing list
checkmk-de@lists.mathias-kettner.de
http://lists.mathias-kettner.de/mailman/listinfo/checkmk-de

Antwort per Email an