34 lines
757 B
Bash
Executable File
34 lines
757 B
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# Reports network bandwidth usage
|
|
#
|
|
set -e
|
|
|
|
usage() {
|
|
echo "Usage: $0 <iftop log file> <temp file for interediate data> [optional list of IP address mapping]"
|
|
echo
|
|
echo Processes iftop log file, and extracts latest bandwidth used by each connection
|
|
echo
|
|
echo
|
|
}
|
|
|
|
if [ "$#" -lt 2 ]; then
|
|
usage
|
|
exit 1
|
|
fi
|
|
|
|
cd "$(dirname "$0")"
|
|
|
|
awk '{ if ($3 ~ "=>") { print $2, $7 } else if ($2 ~ "<=") { print $1, $6 }} ' < "$1" \
|
|
| awk 'NR%2{printf "%s ",$0;next;}1' \
|
|
| awk '{ print "{ \"a\": \""$1"\", " "\"b\": \""$3"\", \"a_to_b\": \""$2"\", \"b_to_a\": \""$4"\"}," }' > "$2"
|
|
|
|
if [ "$#" -lt 3 ]; then
|
|
solana-log-analyzer iftop -f "$2"
|
|
else
|
|
list=$(cat "$3")
|
|
solana-log-analyzer iftop -f "$2" map-IP --list "$list"
|
|
fi
|
|
|
|
exit 1
|