2015-03-08 12:30:00 +01:00
|
|
|
#!/bin/sh
|
|
|
|
|
2015-03-08 20:37:56 +01:00
|
|
|
init () {
|
|
|
|
if [ -z $NETWORK_IO_INTERFACE ]; then
|
|
|
|
if is_osx; then
|
|
|
|
NETWORK_IO_INTERFACE="en0"
|
|
|
|
else
|
|
|
|
NETWORK_IO_INTERFACE="eth0"
|
|
|
|
fi
|
2015-03-08 12:30:00 +01:00
|
|
|
fi
|
2015-03-08 20:37:56 +01:00
|
|
|
readonly __network_io_divisor=$[$INTERVAL * 1024]
|
2015-03-08 12:30:00 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
if is_osx; then
|
|
|
|
__network_io_collect () {
|
2015-03-11 22:02:00 +01:00
|
|
|
netstat -bI $NETWORK_IO_INTERFACE |
|
|
|
|
awk "/$NETWORK_IO_INTERFACE/"'{ print $7" "$10 }'
|
2015-03-08 12:30:00 +01:00
|
|
|
}
|
|
|
|
else
|
|
|
|
__network_io_collect () {
|
2015-03-08 14:02:19 +01:00
|
|
|
cat /proc/net/dev | awk -v iface_regex="$NETWORK_IO_INTERFACE:" \
|
2015-03-11 22:02:00 +01:00
|
|
|
'$0 ~ iface_regex { print $2" "$10 }'
|
2015-03-08 12:30:00 +01:00
|
|
|
}
|
|
|
|
fi
|
|
|
|
|
2015-03-08 20:37:56 +01:00
|
|
|
__network_io_calc_kBps() {
|
|
|
|
echo $1 $2 | awk -v divisor=$__network_io_divisor \
|
2015-03-11 22:02:00 +01:00
|
|
|
'{ printf "%.2f", ($1 - $2) / divisor }'
|
2015-03-08 20:37:56 +01:00
|
|
|
}
|
|
|
|
|
2015-03-08 12:30:00 +01:00
|
|
|
collect () {
|
|
|
|
local sample=( $(__network_io_collect) )
|
2015-03-08 20:37:56 +01:00
|
|
|
if [ ! -z $__network_io_sample ]; then
|
2015-03-08 12:30:00 +01:00
|
|
|
report "in" $(__network_io_calc_kBps ${sample[0]} ${__network_io_sample[0]})
|
|
|
|
report "out" $(__network_io_calc_kBps ${sample[1]} ${__network_io_sample[1]})
|
|
|
|
fi
|
|
|
|
__network_io_sample=( "${sample[@]}" )
|
|
|
|
}
|
|
|
|
|
|
|
|
docs () {
|
|
|
|
echo "Network traffic in kB/s."
|
2015-03-15 10:01:41 +01:00
|
|
|
echo "\$NETWORK_IO_INTERFACE="
|
2015-03-08 12:30:00 +01:00
|
|
|
}
|