source: tools/traceends/tracetopends

develop
Last change on this file was 99ee456, checked in by Shane Alcock <salcock@…>, 2 years ago

Convert traceends to use parallel API.

  • Property mode set to 100755
File size: 2.2 KB
Line 
1#!/bin/sh
2
3if [ $# -lt 1 ]; then
4        echo usage: $0 [options] inputuri...
5        echo See manpage for more details.
6        exit
7fi
8
9top_count=10
10send=1
11sort="bytes"
12filter=""
13addr="v4"
14threads=4
15ignoresource=""
16ignoredest=""
17
18while getopts "t:f:sdn:bapA:hSD" opt; do
19        case $opt in
20                A)
21                        addr=$OPTARG
22                        ;;
23                f)
24                        filter=$OPTARG
25                        ;;
26                S)
27                        ignoresource="-S"
28                        ;;
29                D)
30                        ignoredest="-D"
31                        ;;
32                s)
33                        send=1
34                        ;;
35                d)
36                        send=0
37                        ;;
38                t)
39                        threads=$OPTARG
40                        ;;
41                n)
42                        top_count=$OPTARG
43                        ;;
44                b)
45                        sort="bytes"
46                        ;;
47                a)
48                        sort="app"
49                        ;;
50                p)
51                        sort="pkts"
52                        ;;
53                h)
54                        echo usage: $0 [options] inputuri...
55                        echo Type \'man tracetopends\' for more details.
56                        exit 1
57                        ;;
58                /?)
59                        echo "Invalid option: -$OPTARG"
60                        exit 1
61                        ;;
62                :)
63                        echo "Option -$OPTARG requires an argument"
64                        exit 1
65                        ;;
66        esac
67done
68
69sort_index=0
70
71if [ $send = 1 ]; then
72        if [ $sort = "bytes" ]; then
73                sort_index=4
74        elif [ $sort = "pkts" ]; then
75                sort_index=3
76        else
77                sort_index=5
78        fi
79fi
80       
81if [ $send = 0 ]; then
82        if [ $sort = "bytes" ]; then
83                sort_index=7
84        elif [ $sort = "pkts" ]; then
85                sort_index=6
86        else
87                sort_index=8
88        fi
89fi
90
91exec           
92
93shift $(($OPTIND - 1))
94
95if [ $addr = "mac" ]; then
96        printf "%18s %16s %16s %16s %16s %16s %16s %16s\n" \
97        "MAC Address" \
98        "Last Seen" \
99        "Src Pkts" \
100        "Src Bytes" \
101        "Src Payload" \
102        "Dst Pkts" \
103        "Dst Bytes" \
104        "Dst Payload"
105fi
106
107if [ $addr = "v4" ]; then
108        printf "%16s %16s %16s %16s %16s %16s %16s %16s\n" \
109        "IPv4 Address" \
110        "Last Seen" \
111        "Src Pkts" \
112        "Src Bytes" \
113        "Src Payload" \
114        "Dst Pkts" \
115        "Dst Bytes" \
116        "Dst Payload"
117fi
118
119if [ $addr = "v6" ]; then
120        printf "%40s %16s %16s %16s %16s %16s %16s %16s\n" \
121        "IPv6 Address" \
122        "Last Seen" \
123        "Src Pkts" \
124        "Src Bytes" \
125        "Src Payload" \
126        "Dst Pkts" \
127        "Dst Bytes" \
128        "Dst Payload"
129fi
130
131if [ "$filter" = "" ]; then
132        traceends -t $threads -A $addr $ignoredest $ignoresource $@ | { trap '' int; sort -n -k $sort_index -r -s; } | { trap '' int; head -n $top_count; }
133else
134        traceends -t $threads -A $addr -f "$filter" $ignoredest $ignoresource $@  | { trap '' int; sort -n -k $sort_index -r -s; } | { trap '' int; head -n $top_count; }
135fi
136
137exit 0
138
Note: See TracBrowser for help on using the repository browser.