#!/bin/sh # closing:1 syn_sent:0 established:1887 closewait:0 time_close:0 fin_wait1:28 lastack:4 fin_wait2:725 time_wait:25025 syn_recv:22 listen:14 LC_ALL=C ss -ant | awk ' BEGIN { m["ESTAB"] = "established"; m["SYN-SENT"] = "syn_sent"; m["SYN-RECV"] = "syn_recv"; m["FIN-WAIT-1"] = "fin_wait1"; m["FIN-WAIT-2"] = "fin_wait2"; m["TIME-WAIT"] = "time_wait"; m["UNCONN"] = "time_close"; m["CLOSE-WAIT"] = "closewait"; m["LAST-ACK"] = "lastack"; m["LISTEN"] = "listen"; m["CLOSING"] = "closing"; } $1 ~ /^[A-Z0-9-]+$/ { k = m[$1]; c[k]++; next; } END { for (i in m) { k = m[i]; printf("%s:%d ", k, c[k]); } }'