mirror of
https://github.com/munin-monitoring/contrib.git
synced 2025-07-22 14:16:00 +00:00
[network/upnpc_] Cleanup shell code and centralise call to upnpc
Signed-off-by: Olivier Mehani <shtrom@ssji.net>
This commit is contained in:
parent
f6c627bd56
commit
81bf32a5a5
1 changed files with 45 additions and 30 deletions
|
@ -1,4 +1,4 @@
|
||||||
#!/bin/sh
|
#!/bin/sh -u
|
||||||
# -*- sh -*-
|
# -*- sh -*-
|
||||||
|
|
||||||
: << =cut
|
: << =cut
|
||||||
|
@ -16,7 +16,7 @@ router using UPnP. It can monitor the following aspects, and plot them as separa
|
||||||
|
|
||||||
=head1 APPLICABLE SYSTEMS
|
=head1 APPLICABLE SYSTEMS
|
||||||
|
|
||||||
Linux systems with upnpc installed.
|
Linux systems with upnpc installed (miniupnpc package).
|
||||||
|
|
||||||
=head1 CONFIGURATION
|
=head1 CONFIGURATION
|
||||||
|
|
||||||
|
@ -24,11 +24,13 @@ None needed.
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
Olivier Mehani <shtrom+munin@ssji.net>
|
Olivier Mehani
|
||||||
|
|
||||||
|
Copyright (C) 2016,2019 Olivier Mehani <shtrom+munin@ssji.net>
|
||||||
|
|
||||||
=head1 LICENSE
|
=head1 LICENSE
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-2.0-or-later
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
=head1 MAGIC MARKERS
|
=head1 MAGIC MARKERS
|
||||||
|
|
||||||
|
@ -37,21 +39,38 @@ SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
|
if [ "${MUNIN_DEBUG:-0}" = 1 ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! command -v upnpc >/dev/null; then
|
||||||
|
echo "upnpc not found (miniupnpc package)" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
PLUGIN_NAME="$(basename "${0}")"
|
||||||
|
MODE="$(echo "${PLUGIN_NAME}" | sed 's/.*_//')"
|
||||||
|
DATA="$(upnpc -s)"
|
||||||
|
SUPPORTED_MODES=$(
|
||||||
|
echo "${DATA}" | sed -n " \
|
||||||
|
s/.*Bytes.*/traffic/p; \
|
||||||
|
s/.*MaxBitRate.*/bitrate/p; \
|
||||||
|
s/.*Packets.*/pkts/p; \
|
||||||
|
s/.*uptime=.*/uptime/p; \
|
||||||
|
")
|
||||||
|
|
||||||
autoconf() {
|
autoconf() {
|
||||||
which upnpc >/dev/null && upnpc -s >/dev/null 2>&1 && echo yes || echo "no (No upnpc or no UPnP router)"
|
test -n "${DATA}" && echo yes || echo "no (No UPnP router detected)"
|
||||||
}
|
}
|
||||||
|
|
||||||
suggest () {
|
suggest () {
|
||||||
upnpc -s | sed -n " \
|
for mode in ${SUPPORTED_MODES}; do
|
||||||
s/.*uptime=.*/uptime/p; \
|
echo "${mode}"
|
||||||
s/.*MaxBitRate.*/bitrate/p; \
|
done
|
||||||
s/.*Bytes.*/traffic/p; \
|
|
||||||
s/.*Packets.*/pkts/p; \
|
|
||||||
"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
config () {
|
config () {
|
||||||
case $1 in
|
case ${1} in
|
||||||
"uptime")
|
"uptime")
|
||||||
cat << EOF
|
cat << EOF
|
||||||
graph_title Uplink connection uptime
|
graph_title Uplink connection uptime
|
||||||
|
@ -71,11 +90,7 @@ graph_args --base 1000 -l 0
|
||||||
graph_category network
|
graph_category network
|
||||||
graph_vlabel bitrate down (-) / up (+)
|
graph_vlabel bitrate down (-) / up (+)
|
||||||
down.label bps
|
down.label bps
|
||||||
down.warning 4194304:
|
|
||||||
down.critical 1048576:
|
|
||||||
up.label bps
|
up.label bps
|
||||||
up.warning 524288:
|
|
||||||
up.critical 131072:
|
|
||||||
down.graph no
|
down.graph no
|
||||||
up.negative down
|
up.negative down
|
||||||
EOF
|
EOF
|
||||||
|
@ -114,35 +129,35 @@ down.graph no
|
||||||
up.negative down
|
up.negative down
|
||||||
EOF
|
EOF
|
||||||
;;
|
;;
|
||||||
"*")
|
*)
|
||||||
echo "$0: unknown mode '$1'" >&2
|
echo "unknown mode '${1}'" >&2
|
||||||
exit 1
|
exit 1
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
fetch () {
|
fetch () {
|
||||||
case $1 in
|
case "${1}" in
|
||||||
"uptime")
|
"uptime")
|
||||||
upnpc -s | sed -n "s/.*uptime=\([0-9]\+\)s.*/uptime.value \1/p"
|
echo "${DATA}" | sed -n "s/.*uptime=\([0-9]\+\)s.*/uptime.value \1/p"
|
||||||
;;
|
;;
|
||||||
"bitrate")
|
"bitrate")
|
||||||
upnpc -s | sed -n "s/^MaxBitRateDown : \([0-9]\+\) bps.*MaxBitRateUp \([0-9]\+\) bps.*/down.value \1\nup.value \2/p"
|
echo "${DATA}" | sed -n "s/^MaxBitRateDown : \([0-9]\+\) bps.*MaxBitRateUp \([0-9]\+\) bps.*/down.value \1\nup.value \2/p"
|
||||||
;;
|
;;
|
||||||
"traffic")
|
"traffic")
|
||||||
upnpc -s | sed -n "s/^Bytes:\s*Sent:\s*\([0-9]\+\).*Recv:\s*\([0-9]\+\).*/up.value \1\ndown.value \2/p"
|
echo ${DATA} | sed -n "s/^Bytes:\s*Sent:\s*\([0-9]\+\).*Recv:\s*\([0-9]\+\).*/up.value \1\ndown.value \2/p"
|
||||||
;;
|
;;
|
||||||
"pkts")
|
"pkts")
|
||||||
upnpc -s | sed -n "s/^Packets:\s*Sent:\s*\([0-9]\+\).*Recv:\s*\([0-9]\+\).*/up.value \1\ndown.value \2/p"
|
echo "${DATA}" | sed -n "s/^Packets:\s*Sent:\s*\([0-9]\+\).*Recv:\s*\([0-9]\+\).*/up.value \1\ndown.value \2/p"
|
||||||
;;
|
;;
|
||||||
"*")
|
*)
|
||||||
echo "$0: unknown mode '$1'" >&2
|
echo "unknown mode '${1}'" >&2
|
||||||
exit 1
|
exit 1
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
mode=`echo $0 | sed 's/.*_//'`
|
case ${1:-} in
|
||||||
|
|
||||||
case $1 in
|
|
||||||
"autoconf")
|
"autoconf")
|
||||||
autoconf
|
autoconf
|
||||||
;;
|
;;
|
||||||
|
@ -150,9 +165,9 @@ case $1 in
|
||||||
suggest
|
suggest
|
||||||
;;
|
;;
|
||||||
"config")
|
"config")
|
||||||
config $mode
|
config "${MODE}"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
fetch $mode
|
fetch "${MODE}"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue