staging.inyokaproject.org

Script zerhaktstückelt mir meine Ausgabe in Jekins läuft aber alles korrekt

Status: Ungelöst | Ubuntu-Version: Ubuntu 18.04 (Bionic Beaver)
Antworten |

DevDomi

Anmeldungsdatum:
29. August 2019

Beiträge: 4

Hallo ☺

ich hoffe ihr könnt mir kurz weiterhelfen. Ich werde langsam irre... Vor ein paar Wochen habe ich ein kleinen Smoketest gescriptet, der lief zuerst in einer MINGW Git Bash unter Windows und dort auch zuerst ohne Probleme, also per Git gepusht und im Jenkins als Job aufgebaut. Da läuft es auch bis heute ohne Probleme.

Nun wollte ich heute noch eine kleine If Abfrage reinschieben um zu prüfen ob der Parameter gültig ist, aber nun zerhakstückelt mir die Bash meine Ausgabe ganz seltsam und ich begreife nicht warum. Dachte zuerst es liegt an dem MINGW und Windows und habe das nun auf mein Ubuntu zu Hause wiederholt. Gleiches Ergebnis....aber sobald ich die Änderung auf Jenkins pushe läuft wieder alles und in der Jenkins Konsole wird alles korrekt aufgelöst und angezeigt.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/bin/sh

# Zu prüfende URLs bitte in eine Datei unter
# ./config/{Parameter}/{Parameter}.txt ablegen
# Datei enthält nur die URLs, welche jeweills in eine 
# neue Zeile kommen

SERVICE_UP=0
LRED="\033[1;31m" # Rot
LGREEN="\033[1;32m" # Gruen
NC='\033[0m' # Keine Farbe
file="./config/$1/$1.txt"
failCount=0

if [ ! -f "${file}" ];
then 
  echo  "${LRED} File not Found${NC}" 
  exit 1
fi

while read -r line
  do
    curl -sfIk "$line" > /dev/null

    if [ $? = "${SERVICE_UP}" ];
    then
      echo  " ${LGREEN} $line is online${NC}"
    else
      echo  " ${LRED} $line is down${NC}"
      failCount=$((failCount+1))
    fi

done < "${file}"

if [ "${failCount}" != 0 ];
then
  echo  " ${LRED} Es sind ${failCount} Adressen nicht erreichbar!${NC}"
  exit 1
else 
  exit 0 
fi

Zudem funktioniert auch der Curl Aufruf nicht mehr lokal(Geht immer in den else zweig obwohl seite online und abrufbar).

So sieht das ganze aus wenn es lokal ausgeführt wird: (URL ist z.B. http://testcode.devdomi.code/test/actuator/health)

is down/testcode.devdomi.code/test/actuator/health

Korrekt soll es aber so aussehen(wie Jenkins es ja auch macht):

http//testcode.devdomi.code/test/actuator/health is online

Habt ihr eine Idee?

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

DevDomi schrieb:

Nun wollte ich heute noch eine kleine If Abfrage reinschieben um zu prüfen ob der Parameter gültig ist, aber nun zerhakstückelt mir

Also Zeile 15ff?

So sieht das ganze aus wenn es lokal ausgeführt wird: (URL ist z.B. http://testcode.devdomi.code/test/actuator/health)

is down/testcode.devdomi.code/test/actuator/health

Sieht aus, als ob nach der URL ein \r ausgegeben worden wäre und der Status den Anfang der URL überschreibt. Vermutung: Deine Eingabedatei hat Windows-Dateiendungen. Gib mal die Ausgabe von od -t x1c $config an.

Korrekt soll es aber so aussehen(wie Jenkins es ja auch macht):

http//testcode.devdomi.code/test/actuator/health is online

Das ist keine gültige URL. Da fehlt ein Doppelpunkt.

Habt ihr eine Idee?

s.o.

DevDomi

(Themenstarter)

Anmeldungsdatum:
29. August 2019

Beiträge: 4

Hallo rklm ☺,

danke für deine Hilfe. In der Tat lag es an der Windows Endung. Hatte im Geany das testweise auf LF umgestellt und dann lief es. So etwas doofes auch...so ein kleiner Fehler hält mich ewig auf 😬

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

DevDomi schrieb:

Hallo rklm ☺,

danke für deine Hilfe.

Bitte!

In der Tat lag es an der Windows Endung. Hatte im Geany das testweise auf LF umgestellt und dann lief es. So etwas doofes auch...so ein kleiner Fehler hält mich ewig auf 😬

Und das passiert so oft. ☺

Antworten |