root / plugins / router / freebox @ 7cf2dda9
Historique | Voir | Annoter | Télécharger (15,2 ko)
| 1 | dd94da3b | Olivier Mehani | #!/bin/bash -u |
|---|---|---|---|
| 2 | # -*- sh -*- |
||
| 3 | |||
| 4 | : << =cut |
||
| 5 | |||
| 6 | =head1 NAME |
||
| 7 | |||
| 8 | freebox - Plugin to monitor stats of a Freebox (Free.fr's custom series of routers) |
||
| 9 | |||
| 10 | =head1 MAGIC MARKERS |
||
| 11 | |||
| 12 | #%# family=auto |
||
| 13 | #%# capabilities=autoconf |
||
| 14 | |||
| 15 | =head1 CAVEAT |
||
| 16 | |||
| 17 | Only tested on a Freebox v5 with an ADSL uplink. |
||
| 18 | |||
| 19 | =head1 AUTHOR |
||
| 20 | |||
| 21 | Olivier Mehani |
||
| 22 | |||
| 23 | Copyright (C) 2019 Olivier Mehani <shtrom+munin@ssji.net> |
||
| 24 | |||
| 25 | =head1 LICENSE |
||
| 26 | |||
| 27 | SPDX-License-Identifier: GPL-3.0-or-later |
||
| 28 | |||
| 29 | =cut |
||
| 30 | |||
| 31 | # shellcheck disable=SC1090 |
||
| 32 | . "${MUNIN_LIBDIR}/plugins/plugin.sh"
|
||
| 33 | |||
| 34 | if [ "${MUNIN_DEBUG:-0}" = 1 ]; then
|
||
| 35 | set -x |
||
| 36 | fi |
||
| 37 | |||
| 38 | fbx_info_url="http://mafreebox.free.fr/pub/fbx_info.txt" |
||
| 39 | # |
||
| 40 | # Example output (including stray whitespaces): |
||
| 41 | # |
||
| 42 | |||
| 43 | # ______________________________________________________________________ |
||
| 44 | # |
||
| 45 | # Etat de la Freebox |
||
| 46 | # ______________________________________________________________________ |
||
| 47 | # |
||
| 48 | # |
||
| 49 | # Informations générales : |
||
| 50 | # ======================== |
||
| 51 | # |
||
| 52 | # Modèle Freebox ADSL |
||
| 53 | # Version du firmware 1.5.26 |
||
| 54 | # Mode de connection Dégroupé |
||
| 55 | # Temps depuis la mise en route 9 jours, 23 heures, 4 minutes |
||
| 56 | # |
||
| 57 | # |
||
| 58 | # Téléphone : |
||
| 59 | # =========== |
||
| 60 | # |
||
| 61 | # Etat Ok |
||
| 62 | # Etat du combiné Raccroché |
||
| 63 | # Sonnerie Inactive |
||
| 64 | # |
||
| 65 | # |
||
| 66 | # Adsl : |
||
| 67 | # ====== |
||
| 68 | # |
||
| 69 | # Etat Showtime |
||
| 70 | # Protocole ADSL2+ |
||
| 71 | # Mode Interleaved |
||
| 72 | # |
||
| 73 | # Descendant Montant |
||
| 74 | # -- -- |
||
| 75 | # Débit ATM 1913 kb/s 945 kb/s |
||
| 76 | # Marge de bruit 5.10 dB 5.60 dB |
||
| 77 | # Atténuation 50.00 dB 23.30 dB |
||
| 78 | # FEC 425249 15503719 |
||
| 79 | # CRC 5489 0 |
||
| 80 | # HEC 705 4296208 |
||
| 81 | # |
||
| 82 | # Journal de connexion adsl : |
||
| 83 | # --------------------------- |
||
| 84 | # |
||
| 85 | # Date Etat Débit (kb/s) |
||
| 86 | # -- -- -- |
||
| 87 | # 21/05/2019 à 08:35:49 Connexion 1913 / 988 |
||
| 88 | # 21/05/2019 à 08:34:38 Déconnexion |
||
| 89 | # 20/05/2019 à 21:39:30 Connexion 1156 / 988 |
||
| 90 | # 20/05/2019 à 21:38:43 Déconnexion |
||
| 91 | # 20/05/2019 à 14:50:52 Connexion 1925 / 985 |
||
| 92 | # 20/05/2019 à 14:50:05 Déconnexion |
||
| 93 | # 20/05/2019 à 07:14:38 Connexion 206 / 833 |
||
| 94 | # 20/05/2019 à 07:14:10 Déconnexion |
||
| 95 | # 20/05/2019 à 07:13:50 Connexion 983 / 587 |
||
| 96 | # 20/05/2019 à 07:12:49 Déconnexion |
||
| 97 | # 20/05/2019 à 07:09:32 Connexion 1113 / 864 |
||
| 98 | # 20/05/2019 à 07:08:45 Déconnexion |
||
| 99 | # 20/05/2019 à 07:07:22 Connexion 1195 / 826 |
||
| 100 | # 20/05/2019 à 07:06:59 Déconnexion |
||
| 101 | # 20/05/2019 à 07:06:39 Connexion 1832 / 923 |
||
| 102 | # 20/05/2019 à 07:05:51 Déconnexion |
||
| 103 | # 20/05/2019 à 06:58:10 Connexion 1238 / 887 |
||
| 104 | # 20/05/2019 à 06:57:23 Déconnexion |
||
| 105 | # 20/05/2019 à 06:56:46 Connexion 1375 / 935 |
||
| 106 | # 20/05/2019 à 06:55:58 Déconnexion |
||
| 107 | # 20/05/2019 à 06:55:32 Connexion 1353 / 904 |
||
| 108 | # 20/05/2019 à 06:54:45 Déconnexion |
||
| 109 | # 20/05/2019 à 06:50:37 Connexion 1380 / 923 |
||
| 110 | # 20/05/2019 à 06:49:32 Déconnexion |
||
| 111 | # |
||
| 112 | # |
||
| 113 | # Wifi : |
||
| 114 | # ====== |
||
| 115 | # |
||
| 116 | # Etat Ok |
||
| 117 | # Modèle Ralink RT2880 |
||
| 118 | # Canal 1 |
||
| 119 | # État du réseau Activé |
||
| 120 | # Ssid NetSSID |
||
| 121 | # Type de clé WPA (TKIP+AES) |
||
| 122 | # FreeWifi Désactivé |
||
| 123 | # FreeWifi Secure Actif |
||
| 124 | # |
||
| 125 | # |
||
| 126 | # Réseau : |
||
| 127 | # ======== |
||
| 128 | # |
||
| 129 | # Adresse MAC Freebox XX:XX:XX:XX:XX:XX |
||
| 130 | # Adresse IP 203.0.113.60 |
||
| 131 | # IPv6 Activé |
||
| 132 | # Mode routeur Activé |
||
| 133 | # Adresse IP privée 192.0.2.1 |
||
| 134 | # Adresse IP DMZ 192.0.2.2 |
||
| 135 | # Adresse IP Freeplayer 192.0.2.0 |
||
| 136 | # Réponse au ping Activé |
||
| 137 | # Proxy Wake On Lan Désactivé |
||
| 138 | # Serveur DHCP Activé |
||
| 139 | # Plage d'adresses dynamique 192.0.2.100 - 192.0.2.254 |
||
| 140 | # |
||
| 141 | # Attributions dhcp : |
||
| 142 | # ------------------- |
||
| 143 | # |
||
| 144 | # Adresse MAC Adresse IP |
||
| 145 | # -- -- |
||
| 146 | # XX:XX:XX:XX:XX:XX 192.0.2.101 |
||
| 147 | # XX:XX:XX:XX:XX:XX 192.0.2.102 |
||
| 148 | # XX:XX:XX:XX:XX:XX 192.0.2.103 |
||
| 149 | # XX:XX:XX:XX:XX:XX 192.0.2.104 |
||
| 150 | # XX:XX:XX:XX:XX:XX 192.0.2.105 |
||
| 151 | # XX:XX:XX:XX:XX:XX 192.0.2.100 |
||
| 152 | # XX:XX:XX:XX:XX:XX 192.0.2.3 |
||
| 153 | # |
||
| 154 | # Redirections de ports : |
||
| 155 | # ----------------------- |
||
| 156 | # |
||
| 157 | # Protocole Port source Destination Port destination |
||
| 158 | # -- -- -- -- |
||
| 159 | # TCP 22 192.0.2.3 22 |
||
| 160 | # TCP 2222 192.0.2.100 22 |
||
| 161 | # TCP 1194 192.0.2.3 1194 |
||
| 162 | # UDP 1194 192.0.2.3 1194 |
||
| 163 | # TCP 80 192.0.2.3 80 |
||
| 164 | # |
||
| 165 | # Interfaces réseau : |
||
| 166 | # ------------------- |
||
| 167 | # |
||
| 168 | # Lien Débit entrant Débit sortant |
||
| 169 | # -- -- -- |
||
| 170 | # WAN Ok 1 ko/s 1 ko/s |
||
| 171 | # Ethernet 0 ko/s 0 ko/s |
||
| 172 | # USB Non connecté |
||
| 173 | # Switch 100baseTX-FD 1 ko/s 1 ko/s |
||
| 174 | |||
| 175 | fetch() {
|
||
| 176 | # shellcheck disable=SC2154 |
||
| 177 | curl -s "$@" |
||
| 178 | } |
||
| 179 | |||
| 180 | get_line_column() {
|
||
| 181 | local key="$1" |
||
| 182 | local field_index="$2" |
||
| 183 | awk '/'"$key"'/ {
|
||
| 184 | if ($('"$field_index"') ~ /^[.0-9]+$/) {
|
||
| 185 | print $('"$field_index"')
|
||
| 186 | } |
||
| 187 | }' |
||
| 188 | } |
||
| 189 | |||
| 190 | get_data() {
|
||
| 191 | INFO="$(fetch "${fbx_info_url}" | iconv -f latin1 -t utf8)"
|
||
| 192 | |||
| 193 | UPTIME_DAYS=$(get_line_column "Temps depuis la mise en route" "NF-5" <<< "${INFO}")
|
||
| 194 | UPTIME_HOURS=$(get_line_column "Temps depuis la mise en route" "NF-3" <<< "${INFO}")
|
||
| 195 | UPTIME_MINUTES=$(get_line_column "Temps depuis la mise en route" "NF-1" <<< "${INFO}")
|
||
| 196 | |||
| 197 | ATM_DOWN=$(get_line_column "ATM" "NF-3" <<< "${INFO}")
|
||
| 198 | ATM_UP=$(get_line_column "ATM" "NF-1" <<< "${INFO}")
|
||
| 199 | |||
| 200 | NOISE_DOWN=$(get_line_column "bruit" "NF-3" <<< "${INFO}")
|
||
| 201 | NOISE_UP=$(get_line_column "bruit" "NF-1" <<< "${INFO}")
|
||
| 202 | |||
| 203 | ATTENUATION_DOWN=$(get_line_column "Atténuation" "NF-3" <<< "${INFO}")
|
||
| 204 | ATTENUATION_UP=$(get_line_column "Atténuation" "NF-1" <<< "${INFO}")
|
||
| 205 | |||
| 206 | FEC_DOWN=$(get_line_column "FEC" "NF-1" <<< "${INFO}")
|
||
| 207 | FEC_UP=$(get_line_column "FEC" "NF" <<< "${INFO}")
|
||
| 208 | CRC_DOWN=$(get_line_column "CRC" "NF-1" <<< "${INFO}")
|
||
| 209 | CRC_UP=$(get_line_column "CRC" "NF" <<< "${INFO}")
|
||
| 210 | HEC_DOWN=$(get_line_column "HEC" "NF-1" <<< "${INFO}")
|
||
| 211 | HEC_UP=$(get_line_column "HEC" "NF" <<< "${INFO}")
|
||
| 212 | |||
| 213 | WAN_DOWN=$(get_line_column "WAN" "NF-3" <<< "${INFO}")
|
||
| 214 | WAN_UP=$(get_line_column "WAN" "NF-1" <<< "${INFO}")
|
||
| 215 | ETH_DOWN=$(get_line_column "Ethernet" "NF-3" <<< "${INFO}")
|
||
| 216 | ETH_UP=$(get_line_column "Ethernet" "NF-1" <<< "${INFO}")
|
||
| 217 | USB_DOWN=$(get_line_column "USB" "NF-3" <<< "${INFO}")
|
||
| 218 | USB_UP=$(get_line_column "USB" "NF-1" <<< "${INFO}")
|
||
| 219 | SWITCH_DOWN=$(get_line_column "Switch" "NF-3" <<< "${INFO}")
|
||
| 220 | SWITCH_UP=$(get_line_column "Switch" "NF-1" <<< "${INFO}")
|
||
| 221 | |||
| 222 | DHCP_CLIENTS=$(sed -nE '/Attributions dhcp/,/Redirections de ports/{s/^\s*([0-9A-F:]{17}).*$/\1/p}' <<< "${INFO}" | wc -l)
|
||
| 223 | REDIRECT_TCP=$(sed -nE '/Redirections de ports/,/Interfaces réseau/{s/^\s*(TCP).*$/\1/p}' <<< "${INFO}" | wc -l)
|
||
| 224 | REDIRECT_UDP=$(sed -nE '/Redirections de ports/,/Interfaces réseau/{s/^\s*(UDP).*$/\1/p}' <<< "${INFO}" | wc -l)
|
||
| 225 | |||
| 226 | if [ -z "${UPTIME_DAYS:-}" ]; then
|
||
| 227 | UPTIME_DAYS=0 |
||
| 228 | fi |
||
| 229 | if [ -z "${UPTIME_HOURS:-}" ]; then
|
||
| 230 | UPTIME_HOURS=0 |
||
| 231 | fi |
||
| 232 | if [ -z "${UPTIME_MINUTES:-}" ]; then
|
||
| 233 | UPTIME_MINUTES=0 |
||
| 234 | fi |
||
| 235 | FREEBOX_UPTIME=$((UPTIME_DAYS*86400+UPTIME_HOURS*3600+UPTIME_MINUTES*60)) |
||
| 236 | |||
| 237 | LAST_CONNECT=$(sed -nE '/Journal de connexion adsl/,+5{s#^\s*([0-9]{2})/([0-9]{2})/([0-9]{4})[^0-9]*([0-9]+):([0-9]+):([0-9]+)\s+Connexion.*#\3-\2-\1T\4:\5:\6#p}' <<< "${INFO}")
|
||
| 238 | CONNECTION_UPTIME=U |
||
| 239 | if [ -n "${LAST_CONNECT}" ]; then
|
||
| 240 | CONNECTION_UPTIME="$(($(date +%s)-$(date -d "${LAST_CONNECT}" +%s)))"
|
||
| 241 | |||
| 242 | fi |
||
| 243 | } |
||
| 244 | |||
| 245 | graph_config() {
|
||
| 246 | graph="" |
||
| 247 | if [ -n "${1:-}" ]; then
|
||
| 248 | graph=".$1" |
||
| 249 | fi |
||
| 250 | |||
| 251 | echo "multigraph freebox${graph}"
|
||
| 252 | |||
| 253 | case "$graph" in |
||
| 254 | .adsl) |
||
| 255 | echo "graph_title ADSL characteristics" |
||
| 256 | echo 'graph_category network' |
||
| 257 | 90ccaf4b | Olivier Mehani | echo 'graph_vlabel dB in (-) / out (+)' |
| 258 | dd94da3b | Olivier Mehani | echo 'graph_order noise_down noise attenuation_down attenuation' |
| 259 | |||
| 260 | echo 'noise_down.label Noise down' |
||
| 261 | echo 'noise_down.graph no' |
||
| 262 | echo 'noise.label Noise' |
||
| 263 | echo 'noise.negative noise_down' |
||
| 264 | |||
| 265 | echo 'attenuation_down.label Attenuation down' |
||
| 266 | echo 'attenuation_down.graph no' |
||
| 267 | echo 'attenuation.label Attenuation' |
||
| 268 | echo 'attenuation.negative attenuation_down' |
||
| 269 | ;; |
||
| 270 | .adsl_errors) |
||
| 271 | echo 'graph_title ADSL error correction' |
||
| 272 | echo 'graph_category network' |
||
| 273 | 90ccaf4b | Olivier Mehani | echo 'graph_vlabel errors in (-) / out (+)' |
| 274 | dd94da3b | Olivier Mehani | echo 'graph_order fec_down fec crc_down crc hec_down hec' |
| 275 | |||
| 276 | echo 'fec_down.label FEC down' |
||
| 277 | a207c600 | Olivier Mehani | echo 'fec_down.type DERIVE' |
| 278 | echo 'fec_down.min 0' |
||
| 279 | dd94da3b | Olivier Mehani | echo 'fec_down.graph no' |
| 280 | echo 'fec.label FEC' |
||
| 281 | a207c600 | Olivier Mehani | echo 'fec.type DERIVE' |
| 282 | echo 'fec.min 0' |
||
| 283 | dd94da3b | Olivier Mehani | echo 'fec.negative fec_down' |
| 284 | |||
| 285 | echo 'crc_down.label CRC down' |
||
| 286 | a207c600 | Olivier Mehani | echo 'crc_down.type DERIVE' |
| 287 | echo 'crc_down.min 0' |
||
| 288 | dd94da3b | Olivier Mehani | echo 'crc_down.graph no' |
| 289 | echo 'crc.label CRC' |
||
| 290 | a207c600 | Olivier Mehani | echo 'crc.type DERIVE' |
| 291 | echo 'crc.min 0' |
||
| 292 | dd94da3b | Olivier Mehani | echo 'crc.negative crc_down' |
| 293 | |||
| 294 | echo 'hec_down.label HEC down' |
||
| 295 | a207c600 | Olivier Mehani | echo 'hec_down.type DERIVE' |
| 296 | echo 'hec_down.min 0' |
||
| 297 | dd94da3b | Olivier Mehani | echo 'hec_down.graph no' |
| 298 | echo 'hec.label HEC' |
||
| 299 | a207c600 | Olivier Mehani | echo 'hec.type DERIVE' |
| 300 | echo 'hec.min 0' |
||
| 301 | dd94da3b | Olivier Mehani | echo 'hec.negative hec_down' |
| 302 | ;; |
||
| 303 | .traffic) |
||
| 304 | echo 'graph_title Traffic' |
||
| 305 | echo 'graph_category network' |
||
| 306 | 90ccaf4b | Olivier Mehani | echo 'graph_vlabel bits per second in (-) / out (+)' |
| 307 | dd94da3b | Olivier Mehani | echo 'graph_order atm_down atm wan_down wan eth_down eth usb_down usb switch_down switch' |
| 308 | |||
| 309 | echo 'atm_down.label ATM down' |
||
| 310 | echo 'atm_down.graph no' |
||
| 311 | echo 'atm_down.cdef atm_down,1000,*' |
||
| 312 | echo 'atm.label ATM sync' |
||
| 313 | echo 'atm.negative atm_down' |
||
| 314 | echo 'atm.cdef atm,1000,*' |
||
| 315 | |||
| 316 | echo 'wan_down.label WAN down' |
||
| 317 | echo 'wan_down.graph no' |
||
| 318 | echo 'wan_down.cdef wan_down,8000,*' |
||
| 319 | echo 'wan.label WAN' |
||
| 320 | echo 'wan.negative wan_down' |
||
| 321 | echo 'wan.cdef wan,8000,*' |
||
| 322 | |||
| 323 | echo 'eth_down.label ETH down' |
||
| 324 | echo 'eth_down.graph no' |
||
| 325 | echo 'eth_down.cdef eth_down,8000,*' |
||
| 326 | echo 'eth.label Ethernet' |
||
| 327 | echo 'eth.negative eth_down' |
||
| 328 | echo 'eth.cdef eth,8000,*' |
||
| 329 | |||
| 330 | echo 'usb_down.label USB down' |
||
| 331 | echo 'usb.label USB' |
||
| 332 | echo 'usb_down.graph no' |
||
| 333 | echo 'usb_down.cdef usb_down,8000,*' |
||
| 334 | echo 'usb.negative usb_down' |
||
| 335 | echo 'usb.cdef usb,8000,*' |
||
| 336 | |||
| 337 | echo 'switch_down.label Switch down' |
||
| 338 | echo 'switch_down.graph no' |
||
| 339 | echo 'switch_down.cdef switch_down,8000,*' |
||
| 340 | echo 'switch.label Switch' |
||
| 341 | echo 'switch.cdef switch,8000,*' |
||
| 342 | echo 'switch.negative switch_down' |
||
| 343 | ;; |
||
| 344 | .uptime) |
||
| 345 | echo 'graph_title Uptimes' |
||
| 346 | echo 'graph_category network' |
||
| 347 | echo 'graph_vlabel days' |
||
| 348 | echo 'graph_args --logarithmic' |
||
| 349 | |||
| 350 | echo 'freebox.label Freebox' |
||
| 351 | echo 'freebox.draw AREA' |
||
| 352 | echo 'freebox.cdef freebox,86400,/' |
||
| 353 | |||
| 354 | echo 'connection.label Connection' |
||
| 355 | echo 'connection.cdef connection,86400,/' |
||
| 356 | ;; |
||
| 357 | .users) |
||
| 358 | echo 'graph_title Network users' |
||
| 359 | echo 'graph_category network' |
||
| 360 | echo 'graph_vlabel count' |
||
| 361 | |||
| 362 | echo 'dhcp.label DHCP leases' |
||
| 363 | echo 'redirect_tcp.label TCP redirections' |
||
| 364 | echo 'redirect_udp.label UDP redirections' |
||
| 365 | ;; |
||
| 366 | *) |
||
| 367 | e926acaf | Olivier Mehani | echo 'graph_title Uplink traffic' |
| 368 | dd94da3b | Olivier Mehani | echo 'graph_category network' |
| 369 | 90ccaf4b | Olivier Mehani | echo 'graph_vlabel bits per second in (-) / out (+)' |
| 370 | dd94da3b | Olivier Mehani | echo 'graph_order main_atm_down main_atm main_wan_down main_wan' |
| 371 | |||
| 372 | e926acaf | Olivier Mehani | # XXX: summary data similar to (more detailed) traffic |
| 373 | dd94da3b | Olivier Mehani | echo 'main_wan_down.label WAN down' |
| 374 | echo 'main_wan_down.graph no' |
||
| 375 | echo 'main_wan_down.cdef main_wan_down,8000,*' |
||
| 376 | e926acaf | Olivier Mehani | echo 'main_wan.label bps' |
| 377 | dd94da3b | Olivier Mehani | echo 'main_wan.negative main_wan_down' |
| 378 | echo 'main_wan.cdef main_wan,8000,*' |
||
| 379 | |||
| 380 | echo 'main_atm_down.label ATM down' |
||
| 381 | echo 'main_atm_down.graph no' |
||
| 382 | echo 'main_atm_down.cdef main_atm_down,1000,*' |
||
| 383 | e926acaf | Olivier Mehani | echo 'main_atm.label bps (max)' |
| 384 | dd94da3b | Olivier Mehani | echo 'main_atm.negative main_atm_down' |
| 385 | echo 'main_atm.cdef main_atm,1000,*' |
||
| 386 | ;; |
||
| 387 | |||
| 388 | esac |
||
| 389 | echo |
||
| 390 | } |
||
| 391 | |||
| 392 | graph_data() {
|
||
| 393 | graph="" |
||
| 394 | if [ -n "${1:-}" ]; then
|
||
| 395 | graph=".$1" |
||
| 396 | fi |
||
| 397 | |||
| 398 | echo "multigraph freebox${graph}"
|
||
| 399 | case "$graph" in |
||
| 400 | .adsl) |
||
| 401 | echo "noise.value ${NOISE_UP:-U}"
|
||
| 402 | echo "noise_down.value ${NOISE_DOWN:-U}"
|
||
| 403 | |||
| 404 | echo "attenuation.value ${ATTENUATION_UP:-U}"
|
||
| 405 | echo "attenuation_down.value ${ATTENUATION_DOWN:-U}"
|
||
| 406 | ;; |
||
| 407 | .adsl_errors) |
||
| 408 | echo "fec.value ${FEC_UP:-U}"
|
||
| 409 | echo "fec_down.value ${FEC_DOWN:-U}"
|
||
| 410 | |||
| 411 | echo "crc.value ${CRC_UP:-U}"
|
||
| 412 | echo "crc_down.value ${CRC_DOWN:-U}"
|
||
| 413 | |||
| 414 | echo "hec.value ${HEC_UP:-U}"
|
||
| 415 | echo "hec_down.value ${HEC_DOWN:-U}"
|
||
| 416 | ;; |
||
| 417 | .traffic) |
||
| 418 | echo "atm.value ${ATM_UP:-U}"
|
||
| 419 | echo "atm_down.value ${ATM_DOWN:-U}"
|
||
| 420 | |||
| 421 | echo "wan.value ${WAN_UP:-U}"
|
||
| 422 | echo "wan_down.value ${WAN_DOWN:-U}"
|
||
| 423 | |||
| 424 | echo "eth.value ${ETH_UP:-U}"
|
||
| 425 | echo "eth_down.value ${ETH_DOWN:-U}"
|
||
| 426 | |||
| 427 | echo "usb.value ${USB_UP:-U}"
|
||
| 428 | echo "usb_down.value ${USB_DOWN:-U}"
|
||
| 429 | |||
| 430 | echo "switch.value ${SWITCH_UP:-U}"
|
||
| 431 | echo "switch_down.value ${SWITCH_DOWN:-U}"
|
||
| 432 | ;; |
||
| 433 | .uptime) |
||
| 434 | echo "freebox.value ${FREEBOX_UPTIME:-U}"
|
||
| 435 | echo "connection.value ${CONNECTION_UPTIME:-U}"
|
||
| 436 | ;; |
||
| 437 | .users) |
||
| 438 | echo "dhcp.value ${DHCP_CLIENTS:-U}"
|
||
| 439 | echo "redirect_tcp.value ${REDIRECT_TCP:-U}"
|
||
| 440 | echo "redirect_udp.value ${REDIRECT_UDP:-U}"
|
||
| 441 | ;; |
||
| 442 | *) |
||
| 443 | echo "main_wan.value ${WAN_UP:-U}"
|
||
| 444 | echo "main_wan_down.value ${WAN_DOWN:-U}"
|
||
| 445 | |||
| 446 | echo "main_atm.value ${ATM_UP:-U}"
|
||
| 447 | echo "main_atm_down.value ${ATM_DOWN:-U}"
|
||
| 448 | |||
| 449 | esac |
||
| 450 | echo |
||
| 451 | } |
||
| 452 | |||
| 453 | main() {
|
||
| 454 | case ${1:-} in
|
||
| 455 | autoconf) |
||
| 456 | for CMD in curl iconv; do |
||
| 457 | if ! command -v "${CMD}" >/dev/null; then
|
||
| 458 | echo "no (${CMD} not found)"
|
||
| 459 | fi |
||
| 460 | done |
||
| 461 | |||
| 462 | if curl --connect-timeout 1 -qso /dev/null "${fbx_info_url}"; then
|
||
| 463 | echo 'yes' |
||
| 464 | else |
||
| 465 | echo "no (failed to retrieve ${fbx_info_url})"
|
||
| 466 | fi |
||
| 467 | ;; |
||
| 468 | config) |
||
| 469 | graph_config |
||
| 470 | graph_config adsl |
||
| 471 | graph_config adsl_errors |
||
| 472 | graph_config traffic |
||
| 473 | graph_config uptime |
||
| 474 | graph_config users |
||
| 475 | if [ "${MUNIN_CAP_DIRTYCONFIG:-0}" = "1" ]; then
|
||
| 476 | main |
||
| 477 | fi |
||
| 478 | ;; |
||
| 479 | *) |
||
| 480 | get_data |
||
| 481 | graph_data |
||
| 482 | graph_data adsl |
||
| 483 | graph_data adsl_errors |
||
| 484 | graph_data traffic |
||
| 485 | graph_data uptime |
||
| 486 | graph_data users |
||
| 487 | ;; |
||
| 488 | esac |
||
| 489 | } |
||
| 490 | |||
| 491 | main "${1:-}" |
