Skip to content

AWK

timeouts in ping log

Source example

2015-05-07 23:19:57 64 bytes from 192.168.1.103: icmp_seq=1 ttl=64 time=4.93 ms
2015-05-07 23:20:07 timeout
2015-05-07 23:20:17 timeout
2015-05-07 23:20:28 64 bytes from 192.168.1.103: icmp_seq=1 ttl=64 time=61.2 ms

Script

#!/usr/bin/env bash

if [[ $# -lt 1 ]]; then
    echo "Usage: $0 <logfile>"
    exit 1
fi

awk '
/timeout/ {
    if (!in_timeout) {
        in_timeout = 1
        count_series++
        count_timeout = 0
        print "=== Series " count_series " ==="
    }
    print
    count_timeout++
    last_timeout = count_timeout
    next
}

{
    if (in_timeout) {
        print "=== Total in this series: " last_timeout
        print ""
        in_timeout = 0
        count_timeout = 0
    }
}

END {
    if (in_timeout) {
        print "=== Total in this series: " last_timeout
        print ""
    }
    print "Total number of series: " count_series
}
' "$1"