Message ID | 1501428962-3018-1-git-send-email-freifunk@adrianschmutzler.de |
---|---|
State | Accepted |
Headers | show |
diff --git a/src/packages/fff/fff-support/files/usr/sbin/show_info b/src/packages/fff/fff-support/files/usr/sbin/show_info new file mode 100755 index 0000000..17fbb9f --- /dev/null +++ b/src/packages/fff/fff-support/files/usr/sbin/show_info @@ -0,0 +1,123 @@ +#!/bin/sh + +. /etc/community.cfg +. /etc/firmware_release + +HOSTNAME=$(uci -q get 'system.@system[0].hostname') + +human_bytes() { + while read B ; do + [ $B -lt 1024 ] && echo ${B} B && break + KB=$(((B+512)/1024)) + [ $KB -lt 1024 ] && echo ${KB} KB && break + MB=$(((KB+512)/1024)) + [ $MB -lt 1024 ] && echo ${MB} MB && break + GB=$(((MB+512)/1024)) + [ $GB -lt 1024 ] && echo ${GB} GB && break + echo $(((GB+512)/1024)) TB + done +} + +if pidof fastd >/dev/null ; then + vpn_active="aktiv" +else + vpn_active="inaktiv" +fi +if grep -q '1' /sys/class/net/l2tp*/carrier 2> /dev/null ; then + l2tp_active="aktiv" +else + l2tp_active="inaktiv" +fi +up="$(uptime)" +load="${up##*:}" +uptime="${up%%,*}" +uptime="${uptime##*up}" + +#include OpenWrt version +. /etc/openwrt_release +. /etc/firmware_release + +addr() { + local addr="$(ip -$1 address show dev $2 2>/dev/null | tr '/' ' '| awk '/inet/{ printf("%s ", $2); }')" + echo "${addr:--}" +} +default_gw() { + ip -$1 route list 0/0 dev $2 2> /dev/null | awk '{print($3); exit(0)}' +} +wanif=$(uci -q get network.wan.ifname) +if [ -n "$(default_gw 4 $wanif)" -o -n "$(default_gw 6 $wanif)" ]; then + internet_active="Ja" +else + internet_active="Nein" +fi + +echo "" +echo "Router configuration overview:" + +echo "" +echo "-> SYSTEM" +echo "Name: ${HOSTNAME}" +echo "Modell: $(cat /tmp/sysinfo/model 2>/dev/null)" +echo "MAC-Adresse: $(cat /sys/class/net/br-mesh/address)" +echo "Bekannte Knoten: $((`cat /sys/kernel/debug/batman_adv/bat0/transtable_global | grep '^ [^ ]' | cut -b 39-55 | sort | uniq | wc -l 2>/dev/null`+1))" +echo "Nachbarknoten: $(cat /sys/kernel/debug/batman_adv/bat0/originators | grep '^[0-9a-f]' | cut -b 37-53 | sort | uniq | wc -l 2>/dev/null)" +echo "VPN via fastd: ${vpn_active}" +echo "VPN via L2TP: ${l2tp_active}" +echo "Laufzeit: ${uptime}" +echo "Auslastung: ${load}" +echo "Uhrzeit: $(date)" + +echo "" +echo "-> SOFTWARE" +echo "Firmware Version: ${FIRMWARE_VERSION}" +echo "LEDE Version: ${DISTRIB_DESCRIPTION}" +echo "Kernel Version: $(uname -s -m -r)" +echo "Batman-Adv Version: $(cat /sys/module/batman_adv/version 2>/dev/null)" +echo "Fastd Version: $(fastd --version 2> /dev/null | cut -d' ' -f 2)" + +echo "" +echo "-> Netz: FREIFUNK" +echo "Nutzer: $(cat /sys/kernel/debug/batman_adv/bat0/transtable_local 2> /dev/null | grep -c 'W')" +echo "Empfangen: $(cat /sys/class/net/br-mesh/statistics/rx_bytes | human_bytes)" +echo "Gesendet: $(cat /sys/class/net/br-mesh/statistics/tx_bytes | human_bytes)" +echo "IPv4 Adressen: $(addr 4 br-mesh)" +echo "IPv6 Adressen: $(addr 6 br-mesh)" + +echo "" +echo "-> Netz: WAN" +echo "Internet vorhanden: ${internet_active}" +echo "Empfangen: $(cat /sys/class/net/${wanif}/statistics/rx_bytes | human_bytes)" +echo "Gesendet: $(cat /sys/class/net/${wanif}/statistics/tx_bytes | human_bytes)" +echo "IPv4 Adressen: $(addr 4 $wanif)" +echo "IPv6 Adressen: $(addr 6 $wanif)" + +echo "" +echo "-> EINSTELLUNGEN" +echo "Knotenname: ${HOSTNAME}" +echo "Knotenbeschreibung: $(uci -q get 'system.@system[0].description')" +echo "GPS Breitengrad: $(uci -q get 'system.@system[0].latitude')" +echo "GPS Laengengrad: $(uci -q get 'system.@system[0].longitude')" +echo "Standortbeschreibung: $(uci -q get 'system.@system[0].position_comment')" +echo "E-Mail Adresse: $(uci -q get 'system.@system[0].contact')" + +echo "" +echo "-> SWITCH" +if swconfig list | grep -q switch0 ; then + swconfig dev switch0 show | grep "\t*link:" | while read line ; do + line=$(echo "$line" | tr -d '\n' | tr -d '\t') + port=$(echo "$line" | sed 's/.* port:\([^ ]*\) .*/\1/') + link=$(echo "$line" | sed 's/.* link:\([^ ]*\).*/\1/') + if [ "$link" == "up" ] ; then + speed=$(echo "$line" | sed 's/.* speed:\([^ ]*\).*/\1/') + duplex=$(echo "$line" | sed 's/.* \([^ ]*-duplex\).*/\1/') + else + speed="no link" + duplex="" + fi + port="Port ${port}" + echo "${port}: ${link} @ $speed $duplex" + done +fi + +echo "" +echo "END"
Hi hat das Script irgendwo einen weiteren Zweck (also wird für irgendwas weiteres verwendet) oder dient es nur dafür, das man auf der Konsole die Infos schön & schnell und einfach einsammeln kann? Wäre vllt. für Diagnosezwecke ganz sinnvoll wenn auf der ML wieder kommt "geht nicht" dann können sie das Script laufen lassen und die Ausgabe C&P. Dazu fehlen aber u.U. noch ein paar Informationen (sepzeill rund um Batman, sind Nodes in Reichweite? Ist ein Gateway in Reichweite,...) die man evtl. später mal hinzufügen könnte. Prinzipiell finde ich es aber schick auch wenn ich es wohl kaum brauche sind halt wieder knapp 4kbyte Speicher aber ich glaub darauf kommt es aktuell (noch...?) nicht an und wenn schon irgendwann werden die 4MB Geräte eh sterben also: Reviewed-by: Christian Dresel <fff@chrisi01.de> mfg Christian On 30.07.2017 17:36, Adrian Schmutzler wrote: > Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> > > Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> > --- > .../fff/fff-support/files/usr/sbin/show_info | 123 +++++++++++++++++++++ > 1 file changed, 123 insertions(+) > create mode 100755 src/packages/fff/fff-support/files/usr/sbin/show_info > > diff --git a/src/packages/fff/fff-support/files/usr/sbin/show_info b/src/packages/fff/fff-support/files/usr/sbin/show_info > new file mode 100755 > index 0000000..17fbb9f > --- /dev/null > +++ b/src/packages/fff/fff-support/files/usr/sbin/show_info > @@ -0,0 +1,123 @@ > +#!/bin/sh > + > +. /etc/community.cfg > +. /etc/firmware_release > + > +HOSTNAME=$(uci -q get 'system.@system[0].hostname') > + > +human_bytes() { > + while read B ; do > + [ $B -lt 1024 ] && echo ${B} B && break > + KB=$(((B+512)/1024)) > + [ $KB -lt 1024 ] && echo ${KB} KB && break > + MB=$(((KB+512)/1024)) > + [ $MB -lt 1024 ] && echo ${MB} MB && break > + GB=$(((MB+512)/1024)) > + [ $GB -lt 1024 ] && echo ${GB} GB && break > + echo $(((GB+512)/1024)) TB > + done > +} > + > +if pidof fastd >/dev/null ; then > + vpn_active="aktiv" > +else > + vpn_active="inaktiv" > +fi > +if grep -q '1' /sys/class/net/l2tp*/carrier 2> /dev/null ; then > + l2tp_active="aktiv" > +else > + l2tp_active="inaktiv" > +fi > +up="$(uptime)" > +load="${up##*:}" > +uptime="${up%%,*}" > +uptime="${uptime##*up}" > + > +#include OpenWrt version > +. /etc/openwrt_release > +. /etc/firmware_release > + > +addr() { > + local addr="$(ip -$1 address show dev $2 2>/dev/null | tr '/' ' '| awk '/inet/{ printf("%s ", $2); }')" > + echo "${addr:--}" > +} > +default_gw() { > + ip -$1 route list 0/0 dev $2 2> /dev/null | awk '{print($3); exit(0)}' > +} > +wanif=$(uci -q get network.wan.ifname) > +if [ -n "$(default_gw 4 $wanif)" -o -n "$(default_gw 6 $wanif)" ]; then > + internet_active="Ja" > +else > + internet_active="Nein" > +fi > + > +echo "" > +echo "Router configuration overview:" > + > +echo "" > +echo "-> SYSTEM" > +echo "Name: ${HOSTNAME}" > +echo "Modell: $(cat /tmp/sysinfo/model 2>/dev/null)" > +echo "MAC-Adresse: $(cat /sys/class/net/br-mesh/address)" > +echo "Bekannte Knoten: $((`cat /sys/kernel/debug/batman_adv/bat0/transtable_global | grep '^ [^ ]' | cut -b 39-55 | sort | uniq | wc -l 2>/dev/null`+1))" > +echo "Nachbarknoten: $(cat /sys/kernel/debug/batman_adv/bat0/originators | grep '^[0-9a-f]' | cut -b 37-53 | sort | uniq | wc -l 2>/dev/null)" > +echo "VPN via fastd: ${vpn_active}" > +echo "VPN via L2TP: ${l2tp_active}" > +echo "Laufzeit: ${uptime}" > +echo "Auslastung: ${load}" > +echo "Uhrzeit: $(date)" > + > +echo "" > +echo "-> SOFTWARE" > +echo "Firmware Version: ${FIRMWARE_VERSION}" > +echo "LEDE Version: ${DISTRIB_DESCRIPTION}" > +echo "Kernel Version: $(uname -s -m -r)" > +echo "Batman-Adv Version: $(cat /sys/module/batman_adv/version 2>/dev/null)" > +echo "Fastd Version: $(fastd --version 2> /dev/null | cut -d' ' -f 2)" > + > +echo "" > +echo "-> Netz: FREIFUNK" > +echo "Nutzer: $(cat /sys/kernel/debug/batman_adv/bat0/transtable_local 2> /dev/null | grep -c 'W')" > +echo "Empfangen: $(cat /sys/class/net/br-mesh/statistics/rx_bytes | human_bytes)" > +echo "Gesendet: $(cat /sys/class/net/br-mesh/statistics/tx_bytes | human_bytes)" > +echo "IPv4 Adressen: $(addr 4 br-mesh)" > +echo "IPv6 Adressen: $(addr 6 br-mesh)" > + > +echo "" > +echo "-> Netz: WAN" > +echo "Internet vorhanden: ${internet_active}" > +echo "Empfangen: $(cat /sys/class/net/${wanif}/statistics/rx_bytes | human_bytes)" > +echo "Gesendet: $(cat /sys/class/net/${wanif}/statistics/tx_bytes | human_bytes)" > +echo "IPv4 Adressen: $(addr 4 $wanif)" > +echo "IPv6 Adressen: $(addr 6 $wanif)" > + > +echo "" > +echo "-> EINSTELLUNGEN" > +echo "Knotenname: ${HOSTNAME}" > +echo "Knotenbeschreibung: $(uci -q get 'system.@system[0].description')" > +echo "GPS Breitengrad: $(uci -q get 'system.@system[0].latitude')" > +echo "GPS Laengengrad: $(uci -q get 'system.@system[0].longitude')" > +echo "Standortbeschreibung: $(uci -q get 'system.@system[0].position_comment')" > +echo "E-Mail Adresse: $(uci -q get 'system.@system[0].contact')" > + > +echo "" > +echo "-> SWITCH" > +if swconfig list | grep -q switch0 ; then > + swconfig dev switch0 show | grep "\t*link:" | while read line ; do > + line=$(echo "$line" | tr -d '\n' | tr -d '\t') > + port=$(echo "$line" | sed 's/.* port:\([^ ]*\) .*/\1/') > + link=$(echo "$line" | sed 's/.* link:\([^ ]*\).*/\1/') > + if [ "$link" == "up" ] ; then > + speed=$(echo "$line" | sed 's/.* speed:\([^ ]*\).*/\1/') > + duplex=$(echo "$line" | sed 's/.* \([^ ]*-duplex\).*/\1/') > + else > + speed="no link" > + duplex="" > + fi > + port="Port ${port}" > + echo "${port}: ${link} @ $speed $duplex" > + done > +fi > + > +echo "" > +echo "END" >
Hi Applied. Tim Am Sonntag, den 20.08.2017, 12:35 +0200 schrieb Christian Dresel: > Hi > > hat das Script irgendwo einen weiteren Zweck (also wird für irgendwas > weiteres verwendet) oder dient es nur dafür, das man auf der Konsole > die > Infos schön & schnell und einfach einsammeln kann? Wäre vllt. für > Diagnosezwecke ganz sinnvoll wenn auf der ML wieder kommt "geht > nicht" > dann können sie das Script laufen lassen und die Ausgabe C&P. Dazu > fehlen aber u.U. noch ein paar Informationen (sepzeill rund um > Batman, > sind Nodes in Reichweite? Ist ein Gateway in Reichweite,...) die man > evtl. später mal hinzufügen könnte. > > Prinzipiell finde ich es aber schick auch wenn ich es wohl kaum > brauche > sind halt wieder knapp 4kbyte Speicher aber ich glaub darauf kommt es > aktuell (noch...?) nicht an und wenn schon irgendwann werden die 4MB > Geräte eh sterben also: > > Reviewed-by: Christian Dresel <fff@chrisi01.de> > > mfg > > Christian > > On 30.07.2017 17:36, Adrian Schmutzler wrote: > > Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> > > > > Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> > > --- > > .../fff/fff-support/files/usr/sbin/show_info | 123 > > +++++++++++++++++++++ > > 1 file changed, 123 insertions(+) > > create mode 100755 src/packages/fff/fff- > > support/files/usr/sbin/show_info > > > > diff --git a/src/packages/fff/fff-support/files/usr/sbin/show_info > > b/src/packages/fff/fff-support/files/usr/sbin/show_info > > new file mode 100755 > > index 0000000..17fbb9f > > --- /dev/null > > +++ b/src/packages/fff/fff-support/files/usr/sbin/show_info > > @@ -0,0 +1,123 @@ > > +#!/bin/sh > > + > > +. /etc/community.cfg > > +. /etc/firmware_release > > + > > +HOSTNAME=$(uci -q get 'system.@system[0].hostname') > > + > > +human_bytes() { > > + while read B ; do > > + [ $B -lt 1024 ] && echo ${B} B && break > > + KB=$(((B+512)/1024)) > > + [ $KB -lt 1024 ] && echo ${KB} KB && break > > + MB=$(((KB+512)/1024)) > > + [ $MB -lt 1024 ] && echo ${MB} MB && break > > + GB=$(((MB+512)/1024)) > > + [ $GB -lt 1024 ] && echo ${GB} GB && break > > + echo $(((GB+512)/1024)) TB > > + done > > +} > > + > > +if pidof fastd >/dev/null ; then > > + vpn_active="aktiv" > > +else > > + vpn_active="inaktiv" > > +fi > > +if grep -q '1' /sys/class/net/l2tp*/carrier 2> /dev/null ; then > > + l2tp_active="aktiv" > > +else > > + l2tp_active="inaktiv" > > +fi > > +up="$(uptime)" > > +load="${up##*:}" > > +uptime="${up%%,*}" > > +uptime="${uptime##*up}" > > + > > +#include OpenWrt version > > +. /etc/openwrt_release > > +. /etc/firmware_release > > + > > +addr() { > > + local addr="$(ip -$1 address show dev $2 2>/dev/null | tr > > '/' ' '| awk '/inet/{ printf("%s ", $2); }')" > > + echo "${addr:--}" > > +} > > +default_gw() { > > + ip -$1 route list 0/0 dev $2 2> /dev/null | awk > > '{print($3); exit(0)}' > > +} > > +wanif=$(uci -q get network.wan.ifname) > > +if [ -n "$(default_gw 4 $wanif)" -o -n "$(default_gw 6 $wanif)" > > ]; then > > + internet_active="Ja" > > +else > > + internet_active="Nein" > > +fi > > + > > +echo "" > > +echo "Router configuration overview:" > > + > > +echo "" > > +echo "-> SYSTEM" > > +echo "Name: ${HOSTNAME}" > > +echo "Modell: $(cat /tmp/sysinfo/model 2>/dev/null)" > > +echo "MAC-Adresse: $(cat /sys/class/net/br-mesh/address)" > > +echo "Bekannte Knoten: $((`cat > > /sys/kernel/debug/batman_adv/bat0/transtable_global | grep '^ [^ ]' > > | cut -b 39-55 | sort | uniq | wc -l 2>/dev/null`+1))" > > +echo "Nachbarknoten: $(cat > > /sys/kernel/debug/batman_adv/bat0/originators | grep '^[0-9a-f]' | > > cut -b 37-53 | sort | uniq | wc -l 2>/dev/null)" > > +echo "VPN via fastd: ${vpn_active}" > > +echo "VPN via L2TP: ${l2tp_active}" > > +echo "Laufzeit: ${uptime}" > > +echo "Auslastung: ${load}" > > +echo "Uhrzeit: $(date)" > > + > > +echo "" > > +echo "-> SOFTWARE" > > +echo "Firmware Version: ${FIRMWARE_VERSION}" > > +echo "LEDE Version: ${DISTRIB_DESCRIPTION}" > > +echo "Kernel Version: $(uname -s -m -r)" > > +echo "Batman-Adv Version: $(cat /sys/module/batman_adv/version > > 2>/dev/null)" > > +echo "Fastd Version: $(fastd --version 2> /dev/null | cut -d' ' -f > > 2)" > > + > > +echo "" > > +echo "-> Netz: FREIFUNK" > > +echo "Nutzer: $(cat > > /sys/kernel/debug/batman_adv/bat0/transtable_local 2> /dev/null | > > grep -c 'W')" > > +echo "Empfangen: $(cat /sys/class/net/br-mesh/statistics/rx_bytes > > | human_bytes)" > > +echo "Gesendet: $(cat /sys/class/net/br-mesh/statistics/tx_bytes | > > human_bytes)" > > +echo "IPv4 Adressen: $(addr 4 br-mesh)" > > +echo "IPv6 Adressen: $(addr 6 br-mesh)" > > + > > +echo "" > > +echo "-> Netz: WAN" > > +echo "Internet vorhanden: ${internet_active}" > > +echo "Empfangen: $(cat /sys/class/net/${wanif}/statistics/rx_bytes > > | human_bytes)" > > +echo "Gesendet: $(cat /sys/class/net/${wanif}/statistics/tx_bytes > > | human_bytes)" > > +echo "IPv4 Adressen: $(addr 4 $wanif)" > > +echo "IPv6 Adressen: $(addr 6 $wanif)" > > + > > +echo "" > > +echo "-> EINSTELLUNGEN" > > +echo "Knotenname: ${HOSTNAME}" > > +echo "Knotenbeschreibung: $(uci -q get 'system.@system[0].descript > > ion')" > > +echo "GPS Breitengrad: $(uci -q get 'system.@system[0].latitude')" > > +echo "GPS Laengengrad: $(uci -q get 'system.@system[0].longitude') > > " > > +echo "Standortbeschreibung: $(uci -q get 'system.@system[0].positi > > on_comment')" > > +echo "E-Mail Adresse: $(uci -q get 'system.@system[0].contact')" > > + > > +echo "" > > +echo "-> SWITCH" > > +if swconfig list | grep -q switch0 ; then > > + swconfig dev switch0 show | grep "\t*link:" | while read > > line ; do > > + line=$(echo "$line" | tr -d '\n' | tr -d '\t') > > + port=$(echo "$line" | sed 's/.* port:\([^ ]*\) > > .*/\1/') > > + link=$(echo "$line" | sed 's/.* link:\([^ > > ]*\).*/\1/') > > + if [ "$link" == "up" ] ; then > > + speed=$(echo "$line" | sed 's/.* > > speed:\([^ ]*\).*/\1/') > > + duplex=$(echo "$line" | sed 's/.* \([^ ]*- > > duplex\).*/\1/') > > + else > > + speed="no link" > > + duplex="" > > + fi > > + port="Port ${port}" > > + echo "${port}: ${link} @ $speed $duplex" > > + done > > +fi > > + > > +echo "" > > +echo "END" > > > >
Hallo Christian, nur nachträglich zur Antwort auf deine Fragen: Ich "warte" ja ca. 60 Router und logge mich dabei über SSH ein. Dieses Skript liefert mir dabei den komfortablen Überblick über Parameter, den ich sonst nur im WebUI habe (Hier ist aber der Zugang von verschiedenen Computer ungleich schwieriger). Das ist der simple Zweck des Skriptes. Entsprechend habe ich das WebUI 1:1 nachgebildet. Selbstverständlich kann man hier verschiedenes ergänzen, ggf. könnte man sogar Parameter für show_info einführen (quasi Verbose-Levels). Das mit dem Speicherplatz habe ich selbst im Auge, da ich ja zu über 50 % 841er betreue. Wenn das mal ein Problem wird, sehe ich aber auch noch Potential, das show_info Skript zu optimieren (was ich im Moment nicht getan habe). Zwecks Speicherplatz wäre btw auch mein Patch zur configurenetwork-Datei interessant: https://pw.freifunk-franken.de/patch/419/ Dies behebt den Aufruf von configurenetwork bei jedem Neustart, wodurch https://mantis.freifunk-franken.de/view.php?id=56 behoben wird. Grüße Adrian -----Original Message----- From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf Of Christian Dresel Sent: Sonntag, 20. August 2017 12:36 To: Adrian Schmutzler <freifunk@adrianschmutzler.de>; franken-dev@freifunk.net Subject: Re: [PATCH v2] fff-support: Provide shell script with output similar to WebUI Hi hat das Script irgendwo einen weiteren Zweck (also wird für irgendwas weiteres verwendet) oder dient es nur dafür, das man auf der Konsole die Infos schön & schnell und einfach einsammeln kann? Wäre vllt. für Diagnosezwecke ganz sinnvoll wenn auf der ML wieder kommt "geht nicht" dann können sie das Script laufen lassen und die Ausgabe C&P. Dazu fehlen aber u.U. noch ein paar Informationen (sepzeill rund um Batman, sind Nodes in Reichweite? Ist ein Gateway in Reichweite,...) die man evtl. später mal hinzufügen könnte. Prinzipiell finde ich es aber schick auch wenn ich es wohl kaum brauche sind halt wieder knapp 4kbyte Speicher aber ich glaub darauf kommt es aktuell (noch...?) nicht an und wenn schon irgendwann werden die 4MB Geräte eh sterben also: Reviewed-by: Christian Dresel <fff@chrisi01.de> mfg Christian On 30.07.2017 17:36, Adrian Schmutzler wrote: > Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> > > Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> > --- > .../fff/fff-support/files/usr/sbin/show_info | 123 +++++++++++++++++++++ > 1 file changed, 123 insertions(+) > create mode 100755 > src/packages/fff/fff-support/files/usr/sbin/show_info > > diff --git a/src/packages/fff/fff-support/files/usr/sbin/show_info > b/src/packages/fff/fff-support/files/usr/sbin/show_info > new file mode 100755 > index 0000000..17fbb9f > --- /dev/null > +++ b/src/packages/fff/fff-support/files/usr/sbin/show_info > @@ -0,0 +1,123 @@ > +#!/bin/sh > + > +. /etc/community.cfg > +. /etc/firmware_release > + > +HOSTNAME=$(uci -q get 'system.@system[0].hostname') > + > +human_bytes() { > + while read B ; do > + [ $B -lt 1024 ] && echo ${B} B && break > + KB=$(((B+512)/1024)) > + [ $KB -lt 1024 ] && echo ${KB} KB && break > + MB=$(((KB+512)/1024)) > + [ $MB -lt 1024 ] && echo ${MB} MB && break > + GB=$(((MB+512)/1024)) > + [ $GB -lt 1024 ] && echo ${GB} GB && break > + echo $(((GB+512)/1024)) TB > + done > +} > + > +if pidof fastd >/dev/null ; then > + vpn_active="aktiv" > +else > + vpn_active="inaktiv" > +fi > +if grep -q '1' /sys/class/net/l2tp*/carrier 2> /dev/null ; then > + l2tp_active="aktiv" > +else > + l2tp_active="inaktiv" > +fi > +up="$(uptime)" > +load="${up##*:}" > +uptime="${up%%,*}" > +uptime="${uptime##*up}" > + > +#include OpenWrt version > +. /etc/openwrt_release > +. /etc/firmware_release > + > +addr() { > + local addr="$(ip -$1 address show dev $2 2>/dev/null | tr '/' ' '| awk '/inet/{ printf("%s ", $2); }')" > + echo "${addr:--}" > +} > +default_gw() { > + ip -$1 route list 0/0 dev $2 2> /dev/null | awk '{print($3); exit(0)}' > +} > +wanif=$(uci -q get network.wan.ifname) if [ -n "$(default_gw 4 > +$wanif)" -o -n "$(default_gw 6 $wanif)" ]; then > + internet_active="Ja" > +else > + internet_active="Nein" > +fi > + > +echo "" > +echo "Router configuration overview:" > + > +echo "" > +echo "-> SYSTEM" > +echo "Name: ${HOSTNAME}" > +echo "Modell: $(cat /tmp/sysinfo/model 2>/dev/null)" > +echo "MAC-Adresse: $(cat /sys/class/net/br-mesh/address)" > +echo "Bekannte Knoten: $((`cat /sys/kernel/debug/batman_adv/bat0/transtable_global | grep '^ [^ ]' | cut -b 39-55 | sort | uniq | wc -l 2>/dev/null`+1))" > +echo "Nachbarknoten: $(cat /sys/kernel/debug/batman_adv/bat0/originators | grep '^[0-9a-f]' | cut -b 37-53 | sort | uniq | wc -l 2>/dev/null)" > +echo "VPN via fastd: ${vpn_active}" > +echo "VPN via L2TP: ${l2tp_active}" > +echo "Laufzeit: ${uptime}" > +echo "Auslastung: ${load}" > +echo "Uhrzeit: $(date)" > + > +echo "" > +echo "-> SOFTWARE" > +echo "Firmware Version: ${FIRMWARE_VERSION}" > +echo "LEDE Version: ${DISTRIB_DESCRIPTION}" > +echo "Kernel Version: $(uname -s -m -r)" > +echo "Batman-Adv Version: $(cat /sys/module/batman_adv/version 2>/dev/null)" > +echo "Fastd Version: $(fastd --version 2> /dev/null | cut -d' ' -f 2)" > + > +echo "" > +echo "-> Netz: FREIFUNK" > +echo "Nutzer: $(cat /sys/kernel/debug/batman_adv/bat0/transtable_local 2> /dev/null | grep -c 'W')" > +echo "Empfangen: $(cat /sys/class/net/br-mesh/statistics/rx_bytes | human_bytes)" > +echo "Gesendet: $(cat /sys/class/net/br-mesh/statistics/tx_bytes | human_bytes)" > +echo "IPv4 Adressen: $(addr 4 br-mesh)" > +echo "IPv6 Adressen: $(addr 6 br-mesh)" > + > +echo "" > +echo "-> Netz: WAN" > +echo "Internet vorhanden: ${internet_active}" > +echo "Empfangen: $(cat /sys/class/net/${wanif}/statistics/rx_bytes | human_bytes)" > +echo "Gesendet: $(cat /sys/class/net/${wanif}/statistics/tx_bytes | human_bytes)" > +echo "IPv4 Adressen: $(addr 4 $wanif)" > +echo "IPv6 Adressen: $(addr 6 $wanif)" > + > +echo "" > +echo "-> EINSTELLUNGEN" > +echo "Knotenname: ${HOSTNAME}" > +echo "Knotenbeschreibung: $(uci -q get 'system.@system[0].description')" > +echo "GPS Breitengrad: $(uci -q get 'system.@system[0].latitude')" > +echo "GPS Laengengrad: $(uci -q get 'system.@system[0].longitude')" > +echo "Standortbeschreibung: $(uci -q get 'system.@system[0].position_comment')" > +echo "E-Mail Adresse: $(uci -q get 'system.@system[0].contact')" > + > +echo "" > +echo "-> SWITCH" > +if swconfig list | grep -q switch0 ; then > + swconfig dev switch0 show | grep "\t*link:" | while read line ; do > + line=$(echo "$line" | tr -d '\n' | tr -d '\t') > + port=$(echo "$line" | sed 's/.* port:\([^ ]*\) .*/\1/') > + link=$(echo "$line" | sed 's/.* link:\([^ ]*\).*/\1/') > + if [ "$link" == "up" ] ; then > + speed=$(echo "$line" | sed 's/.* speed:\([^ ]*\).*/\1/') > + duplex=$(echo "$line" | sed 's/.* \([^ ]*-duplex\).*/\1/') > + else > + speed="no link" > + duplex="" > + fi > + port="Port ${port}" > + echo "${port}: ${link} @ $speed $duplex" > + done > +fi > + > +echo "" > +echo "END" >