Parcourir la source

script: Handle the case when the host is unreachable

Baptiste Jonglez il y a 10 ans
Parent
commit
4c22948317
1 fichiers modifiés avec 14 ajouts et 5 suppressions
  1. 14 5
      templates/run.sh

+ 14 - 5
templates/run.sh

@@ -23,9 +23,18 @@ do
     printf "%d" "$id" > /dev/null 2>&1 || continue
     # Parsing ping output, for Linux
     output="$($PING -c "$NB_PINGS" "$ip" | grep -A1 "packets transmitted")"
-    echo $output | sed -e 's#^\([0-9]*\) packets transmitted, \([0-9]*\) received, .* rtt min/avg/max/mdev = \(.*\)/\(.*\)/\(.*\)/\(.*\) ms$#\1\t\2\t\3\t\4\t\5\t\6#' > /tmp/"$FAMILY"_tmp
-    read sent received minrtt avgrtt maxrtt jitter < /tmp/"$FAMILY"_tmp
-    [ -z "$avgrtt" ] && continue
-    echo "RTT to target $id ($ip) is $avgrtt"
-    curl -d "target=${id}&probes_sent=${sent}&probes_received=${received}&minrtt=${minrtt}&avgrtt=${avgrtt}&maxrtt=${maxrtt}&jitter=${jitter}" "$PEERFINDER"/result/report/"$UUID"
+    echo $output | sed -e 's#^\([0-9]*\) packets transmitted, \([0-9]*\) received.*#\1\t\2#' > /tmp/"$FAMILY"_tmp1
+    read sent received < /tmp/"$FAMILY"_tmp1
+    if [ "$received" -eq 0 ]
+    then
+        args="avgrtt=NaN"
+        echo "Target $id ($ip) is unreachable"
+    else
+        echo $output | sed -e 's#.*rtt min/avg/max/mdev = \(.*\)/\(.*\)/\(.*\)/\(.*\) ms$#\1\t\2\t\3\t\4#' > /tmp/"$FAMILY"_tmp2
+        read minrtt avgrtt maxrtt jitter < /tmp/"$FAMILY"_tmp2
+        [ -z "$avgrtt" ] && continue
+        echo "RTT to target $id ($ip) is $avgrtt"
+        args="minrtt=${minrtt}&avgrtt=${avgrtt}&maxrtt=${maxrtt}&jitter=${jitter}"
+    fi
+    curl -d "target=${id}&probes_sent=${sent}&probes_received=${received}&${args}" "$PEERFINDER"/result/report/"$UUID"
 done