| #! /bin/sh |
| |
| # |
| # ping the peer radio each second, and touch a file (up or down) |
| # |
| |
| . /etc/utils.sh |
| |
| # If DoNotGenerateAlarmLogs experiment is present then script will |
| # not print ping state periodically. |
| register_experiment DoNotGenerateAlarmLogs |
| |
| rm -f /tmp/peer-up /tmp/peer-down |
| |
| last_print_time=0 |
| last_change_time=0 |
| last= |
| while sleep 1; do |
| addr=$(ptp-config -g peer_ipaddr) |
| addr=${addr%%/*} |
| log="false" |
| |
| if ! ping -q -c 1 -w 1 "$addr" 2>&1 >/dev/null; then |
| new=down |
| print_every_seconds=30 |
| else |
| new=up |
| print_every_seconds=120 |
| fi |
| if [ "$last" != "$new" ]; then |
| rm -f /tmp/peer-up /tmp/peer-down |
| >/tmp/peer-"$new" |
| log="true" |
| last_change_time=$(date +%s) |
| else |
| last_printed=$((now - last_print_time)) |
| if [ "$last_printed" -ge "$print_every_seconds" ]; then |
| log="true"; |
| fi |
| if experiment DoNotGenerateAlarmLogs; then |
| # never print periodically |
| log="false"; |
| fi |
| fi |
| |
| now=$(date +%s) |
| if [ "$log" = "true" ]; then |
| seconds_since_change=$((now - last_change_time)) |
| echo "peer is $new changed $seconds_since_change seconds ago" |
| last_print_time=$(date +%s) |
| fi |
| |
| last="$new" |
| done |