mirror of
https://github.com/librenms/librenms-agent.git
synced 2024-05-09 09:54:52 +00:00
* Format with isort * Format with Black * Fix CRLF * Format with shellcheck * Fix some warning * Fix PHP style * Dont modifiy check_mk files * Fixes
31 lines
1.1 KiB
Bash
Executable File
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"
|