VirtualBox

source: vbox/trunk/src/VBox/Devices/Network/scripts/VBoxConvertNATStats.sh@ 45761

Last change on this file since 45761 was 44529, checked in by vboxsync, 12 years ago

header (C) fixes

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Author Date Id Revision
File size: 2.7 KB
Line 
1#!/bin/sh
2#
3# Copyright (C) 2009-2010 Oracle Corporation
4#
5# This file is part of VirtualBox Open Source Edition (OSE), as
6# available from http://www.virtualbox.org. This file is free software;
7# you can redistribute it and/or modify it under the terms of the GNU
8# General Public License (GPL) as published by the Free Software
9# Foundation, in version 2 as it comes in the "COPYING" file of the
10# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
11# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
12#
13
14#change device to select NAT${NAT_STAT_DEVICE} counters
15
16NAT_STAT_DEBUG=1
17NAT_STAT_DEVICE=0
18NAT_TMP=/tmp
19NAT_STATS_FMT=wiki
20
21NAT_STATS_CONVERTER=$NAT_TMP/converter.awk
22NAT_STATS_COUNTERS_RAW=${NAT_TMP}/counters.out.raw
23NAT_STATS_COUNTERS=${NAT_TMP}/counters.out
24NAT_STATS_REPORT=NAT_STATS_NAME.${NAT_STATS_FMT}
25
26NAT_IN_FILE=$1
27
28[ x"$TMP" != x ] && NAT_TMP=TMP
29
30grep NAT${NAT_STAT_DEVICE} $NAT_IN_FILE > $NAT_STATS_COUNTERS_RAW
31[ $? -ne 0 ] && echo "error happens while grep'ing the NAT's counters" && exit 1
32
33#sed -ne "s/\ */\t/gp" $NAT_STATS_COUNTERS_RAW > $NAT_STATS_COUNTERS
34cp $NAT_STATS_COUNTERS_RAW $NAT_STATS_COUNTERS
35
36cat > $NAT_STATS_CONVERTER <<EOF
37BEGIN{
38 if (FMT == "tsv")
39 OFS="\t";
40 else if (FMT == "wiki")
41 OFS="</td><td>"
42
43 FS=" ";
44 if (FMT == "wiki")
45 print "<table>"
46 if (COUNTERS == "counting")
47 {
48 NF = 2;
49 \$1 = "name"
50 \$2 = "count"
51 if (FMT == "wiki")
52 print "<tr><td>" \$0 "</td></tr>"
53 else
54 print \$0
55 }
56 else if (COUNTERS == "profiling")
57 {
58 NF=6
59 \$1 = "name"
60 \$2 = "ticks_per_count"
61 \$3 = "total_ticks"
62 \$4 = "times"
63 \$5 = "max"
64 \$6 = "min"
65 if (FMT == "wiki")
66 print "<tr><td>" \$0 "</td></tr>"
67 else
68 print \$0
69 }
70}
71/*counting counters */
72NF == 3 && COUNTERS=="counting"{
73 name = \$1
74 count = \$2
75 NF=2
76 if (FMT == "wiki")
77 print "<tr><td>" \$0 "</td></tr>"
78 else
79 print \$0
80}
81/*profiling counters */
82NF == 12 && COUNTERS=="profiling"{
83 name = \$1
84 ticks_per_count = \$2
85 total_ticks = \$5
86 times = \$7
87 max = \$10
88 min = \$12
89 NF=6
90 \$1 = name
91 \$2 = ticks_per_count
92 \$3 = total_ticks
93 \$4 = times
94 \$5 = substr(max,0, index(max, ",") -1)
95 \$6 = substr(min,0, index(min, ")") - 1)
96
97 if (FMT == "wiki")
98 print "<tr><td>" \$0 "</td></tr>"
99 else
100 print \$0
101}
102END{
103 if (FMT == "wiki")
104 print "</table>"
105}
106EOF
107awk -v FMT=$NAT_STATS_FMT -v COUNTERS=profiling -f $NAT_STATS_CONVERTER $NAT_STATS_COUNTERS > $NAT_STATS_REPORT
108awk -v FMT=$NAT_STATS_FMT -v COUNTERS=counting -f $NAT_STATS_CONVERTER $NAT_STATS_COUNTERS >> $NAT_STATS_REPORT
109
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette