Ping auf einen TCP-Port
Da soll also ein kritischer Server, der unter VMWare in der DMZ läuft, per VMotion verschoben werden. Nur wie wird das Ganze überwacht? Im Normalfall lasse ich hier einen Ping laufen, einfach um zu sehen, dass das Zielnetz auf dem neuen Host auch vernünftig durchgereicht wird und der Server durchgehend erreichbar bleibt. Per ICMP-Echo ist die gute Maschine in der DMZ aber nicht erreichbar, also per WHILE-Schleife ein »Ping« auf Port 80. So die einfache Idee, leicht erweitert sollte das folgende Script in keiner Tools-Sammlung fehlen:
tcpping.sh:
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 | #!/bin/sh if [ $# != 2 ]; then echo "Usage: $0 <HOST> <PORT>" exit 1 fi i=0 while (true) do TIME=`date +%s%N| cut -c -13` SCAN=`nmap -P0 -p$2 $1` if [ $? != 0 ]; then exit 1; fi echo $SCAN |grep open >/dev/null if [ $? != 0 ]; then echo tcp ping from $1 port $2: tcp_seq\=$i time\=$(($((`date +%s%N| cut -c -13`-$TIME))))ms timeout else echo tcp ping from $1 port $2: tcp_seq\=$i time\=$(($((`date +%s%N| cut -c -13`-$TIME))))ms fi sleep 1 i=$((i+1)) done |
j-zero, der bei der Umsetzung geholfen hat, wird das Script sicherlich noch um das eine oder andere Feature erweitern.