1
0
mirror of https://github.com/librenms/librenms-agent.git synced 2024-05-09 09:54:52 +00:00
Files
librenms-librenms-agent/snmp/Openwrt/wlSNR.sh
Jellyfrog 61064dc9fe Cleanup some code (#355)
* Format with isort

* Format with Black

* Fix CRLF

* Format with shellcheck

* Fix some warning

* Fix PHP style

* Dont modifiy check_mk files

* Fixes
2021-03-18 12:24:30 +01:00

31 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
# wlSNR.sh
# Returns wlSNR, Signal-to-Noise ratio in dB
# Arguments:
# $1: targeted interface
# $2: desired result (sum, avg, min, max)
# Check number of arguments
if [ $# -ne 2 ]; then
/bin/echo "Usage: wlSNR.sh interface result"
/bin/echo "Incorrect script usage, exiting."
exit 1
fi
# Get hostname, calculate result. Sum just for debug, and return integer (safest / easiest)
hostname=$(/bin/uname -n)
snrlist=$(/usr/bin/iwinfo "$1" assoclist | /usr/bin/cut -s -d "/" -f 2 | /usr/bin/cut -s -d "(" -f 2 | /usr/bin/cut -s -d " " -f 2 | /usr/bin/cut -s -d ")" -f 1)
if [ "$2" == "sum" ]; then
result=$(/bin/echo "$snrlist" | /usr/bin/awk -F ':' '{sum += $1} END {printf "%d\n", sum}')
elif [ "$2" == "avg" ]; then
result=$(/bin/echo "$snrlist" | /usr/bin/awk -F ':' '{sum += $1} END {printf "%d\n", sum/NR}')
elif [ "$2" == "min" ]; then
result=$(/bin/echo "$snrlist" | /usr/bin/awk -F ':' 'NR == 1 || $1 < min {min = $1} END {printf "%d\n", min}')
elif [ "$2" == "max" ]; then
result=$(/bin/echo "$snrlist" | /usr/bin/awk -F ':' 'NR == 1 || $1 > max {max = $1} END {printf "%d\n", max}')
fi
# Return snmp result
echo "$result"