Browse Source

Fix cron measurement script (same as 962bc9a4)

Baptiste Jonglez 10 years ago
parent
commit
25831088e9
1 changed files with 16 additions and 9 deletions
  1. 16 9
      templates/cron.sh

+ 16 - 9
templates/cron.sh

@@ -42,19 +42,26 @@ read -r id ip < /tmp/"$FAMILY"
 printf "%d" "$id" > /dev/null 2>&1 || exit
 printf "%d" "$id" > /dev/null 2>&1 || exit
 
 
 # Parsing ping output, for Linux
 # 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.*#\1\t\2#' > /tmp/"$FAMILY"_tmp1
-read sent received < /tmp/"$FAMILY"_tmp1
-if [ "$received" -eq 0 ]
+if ! output="$($PING -c "$NB_PINGS" -- "$ip" | grep -A1 "packets transmitted")"
 then
 then
+    sent=0
+    received=0
     args="avgrtt=NaN"
     args="avgrtt=NaN"
     echo "Target $id ($ip) is unreachable"
     echo "Target $id ($ip) is unreachable"
 else
 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" ] && exit
-    echo "RTT to target $id ($ip) is $avgrtt" >> $LOGFILE
-    args="minrtt=${minrtt}&avgrtt=${avgrtt}&maxrtt=${maxrtt}&jitter=${jitter}"
+    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" ] && exit
+        echo "RTT to target $id ($ip) is $avgrtt" >> $LOGFILE
+        args="minrtt=${minrtt}&avgrtt=${avgrtt}&maxrtt=${maxrtt}&jitter=${jitter}"
+    fi
 fi
 fi
 
 
 # Report results back to peerfinder
 # Report results back to peerfinder