1 | #!/bin/bash |
---|
2 | # (C)2009 DatuX - Released under GPL |
---|
3 | |
---|
4 | |
---|
5 | |
---|
6 | # IP=IP adress |
---|
7 | # VERIFYPOSITIVE= tekst voor goed resultaat |
---|
8 | # VERIFYNEGATIVE= tekst voor negatief resultaat |
---|
9 | # CMD=uit te voeren commandos |
---|
10 | # VERIFYEXIT=verwachte exit code |
---|
11 | sshtest() |
---|
12 | { |
---|
13 | #../npl/sshkeyfix root@$IP || return 1 |
---|
14 | |
---|
15 | export OUTPUT=/tmp/sshoutput.$$ |
---|
16 | |
---|
17 | echo -e "\e[1;32m### sshtest: $DESCRIPTION1\e[0m" >&2 |
---|
18 | echo "Running sshtest on $IP:" >&2 |
---|
19 | echo " CMD=$CMD" >&2 |
---|
20 | echo " VERIFYEXIT=$VERIFYEXIT" >&2 |
---|
21 | echo " VERIFYNEGATIVE=$VERIFYNEGATIVE" >&2 |
---|
22 | echo " VERIFYPOSITIVE=$VERIFYPOSITIVE" >&2 |
---|
23 | echo -e "\e[1;30m" >&2 |
---|
24 | chmod 700 ./id_rsa |
---|
25 | #DONT WORRY - the public key of this key is only used on our automated regression test cd's. |
---|
26 | ssh -o StrictHostKeyChecking=no -i ./id_rsa -i ~/.ssh/id_rsa root@$IP "$CMD 2>&1" | tee $OUTPUT || exit 1 |
---|
27 | EXIT=${PIPESTATUS[0]} |
---|
28 | echo -e "\e[0m" >&2 |
---|
29 | |
---|
30 | echo "Results: " >&2 |
---|
31 | |
---|
32 | FAIL=0 |
---|
33 | |
---|
34 | if [ "$VERIFYEXIT" != "" ]; then |
---|
35 | if [ "$VERIFYEXIT" != "$EXIT" ]; then |
---|
36 | echo -e "\e[1;31mSSHTEST FAILED: Exitcode was $EXIT but should be $VERIFYEXIT!\e[0m" >&2 |
---|
37 | FAIL=1 |
---|
38 | else |
---|
39 | echo "Exit code matches $EXIT" >&2 |
---|
40 | fi |
---|
41 | fi |
---|
42 | |
---|
43 | if [ "$VERIFYNEGATIVE" ]; then |
---|
44 | if egrep "$VERIFYNEGATIVE" $OUTPUT; then |
---|
45 | echo -e "\e[1;31mSSHTEST CASE FAILED: Negative text '$VERIFYNEGATIVE' found!\e[0m" >&2 |
---|
46 | FAIL=1 |
---|
47 | else |
---|
48 | echo "Negative text not found." >&2 |
---|
49 | fi |
---|
50 | fi |
---|
51 | |
---|
52 | if [ "$VERIFYPOSITIVE" ]; then |
---|
53 | if ! egrep "$VERIFYPOSITIVE" $OUTPUT; then |
---|
54 | echo -e "\e[1;31mSSHTEST CASE FAILED: Positive text '$VERIFYPOSITIVE' not found!\e[0m" >&2 |
---|
55 | FAIL=1 |
---|
56 | else |
---|
57 | echo "Positive text found." >&2 |
---|
58 | fi |
---|
59 | fi |
---|
60 | |
---|
61 | CMD= |
---|
62 | VERIFYPOSITIVE= |
---|
63 | VERIFYNEGATIVE= |
---|
64 | DESCRIPTION1= |
---|
65 | VERIFYEXIT= |
---|
66 | if [ "$FAIL" == "0" ]; then |
---|
67 | echo "SSHTEST CASE PASSED" >&2 |
---|
68 | fi |
---|
69 | rm $OUTPUT |
---|
70 | return $FAIL; |
---|
71 | } |
---|
72 | |
---|
73 | scptest() |
---|
74 | { |
---|
75 | echo -e "\e[1;32m### scptest: Uploaden $1 naar root@$IP:/root ...\e[0m" >&2 |
---|
76 | scp -r -o StrictHostKeyChecking=no -i ~/.ssh/id_rsa -i id_rsa "$1" root@$IP:/root |
---|
77 | return $? |
---|
78 | } |
---|