Belegte Airtime im Monitoring anzeigen
Aus Freifunk Franken
OpenWRT bietet die Möglichkeit die belegte Airtime auszulesen. Mit diesen Script wird die belegte Airtime ans Monitoring als Statustext geschickt:
Für 2,4GHz Geräte
/etc/busy.sh
#!/bin/sh iw dev w2mesh survey dump > /24dump cat /24dump | sed '/Survey/,/\[in use\]/d' > /24reduced ACT_CUR=$(ACTIVE=$(cat /24reduced | grep "active time:"); set ${ACTIVE:-0 0 0 0 0}; echo -e "${4}") BUS_CUR=$(BUSY=$(cat /24reduced | grep "busy time:"); set ${BUSY:-0 0 0 0 0}; echo -e "${4}") BUS_CUR_OLD2=$(cat /tmp/bus_cur2) echo $BUS_CUR > /tmp/bus_cur2 let BUS_CUR_NEW=$BUS_CUR_OLD2-$BUS_CUR ACT_CUR_OLD2=$(cat /tmp/act_cur2) echo $ACT_CUR > /tmp/act_cur2 let ACT_CUR_NEW=$ACT_CUR_OLD2-$ACT_CUR let BUSPROZ2=$BUS_CUR_NEW*100/$ACT_CUR_NEW echo $BUSPROZ2 echo "Airtime $BUSPROZ2 %" > /tmp/status.txt
Datei ausführbar machen:
chmod +x /etc/busy.sh
/usr/lib/micron.d/fff-nodewatcher folgende Zeile hinzufügen (ja ist eklig, man kann auch einen eigenen Cron anlegen...)
*/1 * * * * /etc/busy.sh
micrond neu starten:
/etc/init.d/micrond restart
Für 2,4GHz und 5GHz Komibgeräte
/etc/busy.sh
#!/bin/sh MESHZWEI=$(iw dev w2mesh station dump | grep Station -c) MESHFUENF=$(iw dev w5mesh station dump | grep Station -c) APZWEI=$(iw dev w2ap station dump | grep Station -c) APFUENF=$(iw dev w5ap station dump | grep Station -c) iw dev w2mesh survey dump > /24dump iw dev w5mesh survey dump > /5dump cat /24dump | sed '/Survey/,/\[in use\]/d' > /24reduced ACT_CUR=$(ACTIVE=$(cat /24reduced | grep "active time:"); set ${ACTIVE:-0 0 0 0 0}; echo -e "${4}") BUS_CUR=$(BUSY=$(cat /24reduced | grep "busy time:"); set ${BUSY:-0 0 0 0 0}; echo -e "${4}") BUS_CUR_OLD2=$(cat /tmp/bus_cur2) echo $BUS_CUR > /tmp/bus_cur2 let BUS_CUR_NEW=$BUS_CUR_OLD2-$BUS_CUR ACT_CUR_OLD2=$(cat /tmp/act_cur2) echo $ACT_CUR > /tmp/act_cur2 let ACT_CUR_NEW=$ACT_CUR_OLD2-$ACT_CUR let BUSPROZ2=$BUS_CUR_NEW*100/$ACT_CUR_NEW echo $BUSPROZ2 cat /5dump | sed '/Survey/,/\[in use\]/d' > /5reduced ACT_CUR=$(ACTIVE=$(cat /5reduced | grep "active time:"); set ${ACTIVE:-0 0 0 0 0}; echo -e "${4}") BUS_CUR=$(BUSY=$(cat /5reduced | grep "busy time:"); set ${BUSY:-0 0 0 0 0}; echo -e "${4}") BUS_CUR_OLD5=$(cat /tmp/bus_cur5) echo $BUS_CUR > /tmp/bus_cur5 let BUS_CUR_NEW=$BUS_CUR_OLD5-$BUS_CUR ACT_CUR_OLD5=$(cat /tmp/act_cur5) echo $ACT_CUR > /tmp/act_cur5 let ACT_CUR_NEW=$ACT_CUR_OLD5-$ACT_CUR let BUSPROZ5=$BUS_CUR_NEW*100/$ACT_CUR_NEW echo $BUSPROZ5 echo "Mesh2,4GHz: $MESHZWEI ; Mesh5GHz: $MESHFUENF ; AP2,4GHz: $APZWEI ; AP5GHz: $APFUENF ; BUSY2,4GHz: $BUSPROZ2 % ; BUSY5GHz: $BUSPROZ5 %" > /tmp/status.txt
beim Rest so verfahren wie oben, als Zusatzfeature zeigt er auch noch alle Meshverbindungen und Clients in 2,4GHz und 5GHz aufgetrennt an.