Wget bekommt keine Cookies, zieht die Ergebnisse nicht zurück.

666
Ben Coughlan

Beim Portieren von Prüfskripts zwischen einigen Servern treten einige Probleme auf.

Das Skript

#!/bin/bash  hostname=$1 port=$2 retstatus=0 retStr= st=`date "+%s.%N"`  if [ $# -ne 2 ]; then echo "Error, invalid parameters passed" exit 3 fi  tmp_cook=`mktemp` wget --no-check-certificate --keep-session-cookies --save-cookies $tmp_cook https://$hostname:$port/LoginForm.jsp -O /dev/null -o /dev/null  ta=`date "+%s.%N"` wget --no-check-certificate --load-cookies $tmp_cook --keep-session-cookies --save-cookies $tmp_cook --post-data="j_username=scott&j_password=tiger" https://$hostname:$port/j_security_check -O /dev/null -o /dev/null  tb=`date "+%s.%N"` ok2=`wget --no-check-certificate --load-cookies $tmp_cook --keep-session-cookies --save-cookies $tmp_cook https://$hostname:$port/MainMenu.jsp -o /dev/null -O - | grep 'Customer Care' | wc -l` if [ $ok2 -gt 0 ]; then retStr="SITE OK." else retStatus=2 retStr="SITE NOT OK." fi  #echo 'Got session:' rm -f $tmp_cook et=`date "+%s.%N"` da=`echo "$ta - $st" | bc` db=`echo "$tb - $st" | bc` dz=`echo "$et - $st" | bc`   printf "%s|SITE LOGIN:%02.2f,%02.2f,%02.2f\n" "$retStr" $da $db $dz exit $retStatus 

Wenn ich es im Debug-Modus starte:

[nagios@mr-slave libexec]$ bash -x check_Login.sh node001.company.com 16004 + hostname=node001.company.com + port=16004 + retstatus=0 + retStr= ++ date +%s.%N + st=1427736385.648488303 + '[' 2 -ne 2 ']' ++ mktemp + tmp_cook=/tmp/tmp.ye9MyQfgJp + wget --no-check-certificate --keep-session-cookies --save-cookies /tmp/tmp.ye9MyQfgJp https://node001.company.com:16004/LoginForm.jsp -O /dev/null -o /dev/null ++ date +%s.%N + ta=1427736385.676642983 + wget --no-check-certificate --load-cookies /tmp/tmp.ye9MyQfgJp --keep-session-cookies --save-cookies /tmp/tmp.ye9MyQfgJp '--post-data=j_username=scott&j_password=tiger' https://node001.company.com:16004/j_security_check -O /dev/null -o /dev/null ++ date +%s.%N + tb=1427736385.702942948 ++ wget --no-check-certificate --load-cookies /tmp/tmp.ye9MyQfgJp --keep-session-cookies --save-cookies /tmp/tmp.ye9MyQfgJp https://node001.company.com:16004/MainMenu.jsp -o /dev/null -O - ++ grep 'menu 1' ++ wc -l + ok2=0 + '[' 0 -gt 0 ']' + retStatus=2 + retStr='SITE NOT OK.' ++ date +%s.%N + et=1427736385.729800960 ++ echo '1427736385.676642983 - 1427736385.648488303' ++ bc + da=.028154680 ++ bc ++ echo '1427736385.702942948 - 1427736385.648488303' + db=.054454645 ++ echo '1427736385.729800960 - 1427736385.648488303' ++ bc + dz=.081312657 + printf '%s|SITE LOGIN:%02.2f,%02.2f,%02.2f\n' 'SITE NOT OK.' .028154680 .054454645 .081312657 SITE NOT OK.|SITE LOGIN:0.03,0.05,0.08 + exit 2 

Also habe ich den Cookie-Inhalt in der tmp-Datei überprüft.

[nagios@dub-company-slave libexec]$ cat /tmp/tmp.ye9MyQfgJp # HTTP cookie file. # Generated by Wget on 2015-03-30 18:26:25. # Edit at your own risk. 

Keine Informationen hier, ich würde eher folgendes erwarten:

nagios@dub-company-slave [libexec] -->> cat /tmp/tmp.wdOvUJ9695 # HTTP cookie file. # Generated by Wget on 2015-03-30 18:19:11. # Edit at your own risk.  node001.company.com:16004 FALSE / FALSE 0 JSESSIONID RMw8VZFPvnnDFcmLzThjgp2mMDJ1GLgt4w8XJpRn1BWn2QNQrQjP!250469950 node001.company.com:16004 FALSE / TRUE 0 _wl_authcookie_ 6QxOZhTJCc9JyyL2lrZZ 

Dieses Skript arbeitet mit einem anderen Slave, und der einzige offensichtliche Unterschied, den ich sehen kann, sind zwei geringfügig unterschiedliche Versionen von wget.

GNU Wget 1.11.4 Red Hat geändert, das funktioniert / GNU Wget 1.12 basiert auf Linux-GNU, was aber nicht funktioniert.

0

1 Antwort auf die Frage

0
Ben Coughlan

Bei der neuen Version von Wget war SSL3 der Standardverschlüsselungstyp und nicht TLS1.0, was die Site verwendet.

--secure-protocol = TLSv1 hat alles gut funktioniert :)