Message ID | 1508936511-3189-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 index 95c8853..e446e41 100755 --- a/src/packages/fff/fff-support/files/usr/sbin/show_info +++ b/src/packages/fff/fff-support/files/usr/sbin/show_info @@ -41,7 +41,7 @@ format_port() { format_state "${port}" printf '%-26s' "@ $speed $duplex " - swconfig dev switch0 show | grep "VLAN\s" | while read line ; do + swconfig dev switch0 show | grep -E "VLAN\s[0-9]+:[ \t]*$" | while read line ; do vid=$(echo "$line" | sed 's/.*VLAN \([^:]*\).*/\1/') vports=$(swconfig dev switch0 vlan "$vid" show | grep 'ports:') if echo "$vports" | grep -q "${port}t" ; then @@ -127,16 +127,16 @@ 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 "Empfangen: $(cat /sys/class/net/br-mesh/statistics/rx_bytes 2> /dev/null | human_bytes)" +echo "Gesendet: $(cat /sys/class/net/br-mesh/statistics/tx_bytes 2> /dev/null | 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 "Empfangen: $(cat /sys/class/net/${wanif}/statistics/rx_bytes 2> /dev/null | human_bytes)" +echo "Gesendet: $(cat /sys/class/net/${wanif}/statistics/tx_bytes 2> /dev/null | human_bytes)" echo "IPv4 Adressen: $(addr 4 $wanif)" echo "IPv6 Adressen: $(addr 6 $wanif)" @@ -151,7 +151,7 @@ echo "E-Mail Adresse: $(uci -q get 'system.@system[0].contact')" echo "" echo "-> BITRATEN-BEGRENZUNG" -if [ "$(uci -q get 'simple-tc.example.enabled')" == "1" ] ; then +if [ "$(uci -q get 'simple-tc.example.enabled')" = "1" ] ; then echo "Aktiv: ja" else echo "Aktiv: nein" @@ -164,49 +164,59 @@ if grep -q 'PORTORDER=' /etc/network.$board_name ; then fi echo "" -if [ -n "$portorder" ] ; then - echo "-> SWITCH (tatsaechliche Portreihenfolge)" -else - echo "-> SWITCH (interne logische Portreihenfolge)" -fi +if swconfig list | grep -q switch0 ; then + if [ -n "$portorder" ] ; then + echo "-> SWITCH (tatsaechliche Portreihenfolge)" + else + echo "-> SWITCH (interne logische Portreihenfolge)" + fi -printf '%-54s' "VLAN-IDs:" -swconfig dev switch0 show | grep "VLAN\s" | while read line ; do - vid=$(echo "$line" | sed 's/.*VLAN \([^:]*\).*/\1/') - printf '%-2s ' "$vid" -done -echo "" -echo "" + printf '%-54s' "VLAN-IDs:" + swconfig dev switch0 show | grep -E "VLAN\s[0-9]+:[ \t]*$" | while read line ; do + vid=$(echo "$line" | sed 's/.*VLAN \([^:]*\).*/\1/') + printf '%-2s ' "$vid" + done + echo "" + echo "" -if [ ! "$(awk -F= '/WANDEV=/ { print $2 }' /etc/network.$board_name)" = "$(awk -F= '/SWITCHDEV=/ { print $2 }' /etc/network.$board_name)" ] ; then - wanif=$(uci -q get network.wan.ifname) - link=$(cat /sys/class/net/${wanif}/operstate) - if [ "$link" = "up" ] ; then - speed="connected" - else - speed="no link" + if [ ! "$(awk -F= '/WANDEV=/ { print $2 }' /etc/network.$board_name)" = "$(awk -F= '/SWITCHDEV=/ { print $2 }' /etc/network.$board_name)" ] ; then + wanif=$(uci -q get network.wan.ifname) + link=$(cat /sys/class/net/${wanif}/operstate) + if [ "$link" = "up" ] ; then + speed="connected" + else + speed="no link" + fi + printf '%-10s%-5s%-13s%s\n' "WAN-Port: " "${link} " "- WAN " "@ $speed" fi - printf '%-10s%-5s%-13s%s\n' "WAN-Port: " "${link} " "- WAN " "@ $speed" -fi -for internalport in $portorder -do - line=$(swconfig dev switch0 port "$internalport" show | tr -d '\n' | tr -d '\t') - port=$(echo "$line" | sed 's/.* port:\([^ ]*\) .*/\1/') - printf '%-10s' "Port #${port}: " - format_port "${line}" -done -echo "" + for internalport in $portorder + do + line=$(swconfig dev switch0 port "$internalport" show | tr -d '\n' | tr -d '\t') + port=$(echo "$line" | sed 's/.* port:\([^ ]*\) .*/\1/') + printf '%-10s' "Port #${port}: " + format_port "${line}" + done + echo "" -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/') - if echo "$portorder" | grep -q "$port" ; then - continue + 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/') + if echo "$portorder" | grep -q "$port" ; then + continue + fi + printf '%-10s' "Port #${port}: " + format_port "${line}" + done +else + echo "-> PORT ASSIGNMENT" + if grep -q "ONE_PORT" "/etc/network.$board_name" || grep -q "ETHPORT" "/etc/network.$board_name" ; then + # Device has a port set by $ETHMODE + . /etc/network.mode + . /etc/network.config + echo "Port Modus: $ETHMODE" fi - printf '%-10s' "Port #${port}: " - format_port "${line}" -done +fi echo "" echo "END"
hi Reviewed-by: Christian Dresel <fff@chrisi01.de> Es sind wieder ein paar mal Leerzeichen vor den ; am Zeilenende, hatten wir ja glaub ich schon mal. mfg Christian On 25.10.2017 15:01, Adrian Schmutzler wrote: > Changes in v2: > Fix VLAN grep to also work on 1043 V1. > > Changes in v3: > Removed part "fix traffic statistics" as this is addressed > in a separate patch. > > Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> > > Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> > --- > .../fff/fff-support/files/usr/sbin/show_info | 96 ++++++++++++---------- > 1 file changed, 53 insertions(+), 43 deletions(-) > > diff --git a/src/packages/fff/fff-support/files/usr/sbin/show_info b/src/packages/fff/fff-support/files/usr/sbin/show_info > index 95c8853..e446e41 100755 > --- a/src/packages/fff/fff-support/files/usr/sbin/show_info > +++ b/src/packages/fff/fff-support/files/usr/sbin/show_info > @@ -41,7 +41,7 @@ format_port() { > format_state "${port}" > printf '%-26s' "@ $speed $duplex " > > - swconfig dev switch0 show | grep "VLAN\s" | while read line ; do > + swconfig dev switch0 show | grep -E "VLAN\s[0-9]+:[ \t]*$" | while read line ; do > vid=$(echo "$line" | sed 's/.*VLAN \([^:]*\).*/\1/') > vports=$(swconfig dev switch0 vlan "$vid" show | grep 'ports:') > if echo "$vports" | grep -q "${port}t" ; then > @@ -127,16 +127,16 @@ 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 "Empfangen: $(cat /sys/class/net/br-mesh/statistics/rx_bytes 2> /dev/null | human_bytes)" > +echo "Gesendet: $(cat /sys/class/net/br-mesh/statistics/tx_bytes 2> /dev/null | 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 "Empfangen: $(cat /sys/class/net/${wanif}/statistics/rx_bytes 2> /dev/null | human_bytes)" > +echo "Gesendet: $(cat /sys/class/net/${wanif}/statistics/tx_bytes 2> /dev/null | human_bytes)" > echo "IPv4 Adressen: $(addr 4 $wanif)" > echo "IPv6 Adressen: $(addr 6 $wanif)" > > @@ -151,7 +151,7 @@ echo "E-Mail Adresse: $(uci -q get 'system.@system[0].contact')" > > echo "" > echo "-> BITRATEN-BEGRENZUNG" > -if [ "$(uci -q get 'simple-tc.example.enabled')" == "1" ] ; then > +if [ "$(uci -q get 'simple-tc.example.enabled')" = "1" ] ; then > echo "Aktiv: ja" > else > echo "Aktiv: nein" > @@ -164,49 +164,59 @@ if grep -q 'PORTORDER=' /etc/network.$board_name ; then > fi > > echo "" > -if [ -n "$portorder" ] ; then > - echo "-> SWITCH (tatsaechliche Portreihenfolge)" > -else > - echo "-> SWITCH (interne logische Portreihenfolge)" > -fi > +if swconfig list | grep -q switch0 ; then > + if [ -n "$portorder" ] ; then > + echo "-> SWITCH (tatsaechliche Portreihenfolge)" > + else > + echo "-> SWITCH (interne logische Portreihenfolge)" > + fi > > -printf '%-54s' "VLAN-IDs:" > -swconfig dev switch0 show | grep "VLAN\s" | while read line ; do > - vid=$(echo "$line" | sed 's/.*VLAN \([^:]*\).*/\1/') > - printf '%-2s ' "$vid" > -done > -echo "" > -echo "" > + printf '%-54s' "VLAN-IDs:" > + swconfig dev switch0 show | grep -E "VLAN\s[0-9]+:[ \t]*$" | while read line ; do > + vid=$(echo "$line" | sed 's/.*VLAN \([^:]*\).*/\1/') > + printf '%-2s ' "$vid" > + done > + echo "" > + echo "" > > -if [ ! "$(awk -F= '/WANDEV=/ { print $2 }' /etc/network.$board_name)" = "$(awk -F= '/SWITCHDEV=/ { print $2 }' /etc/network.$board_name)" ] ; then > - wanif=$(uci -q get network.wan.ifname) > - link=$(cat /sys/class/net/${wanif}/operstate) > - if [ "$link" = "up" ] ; then > - speed="connected" > - else > - speed="no link" > + if [ ! "$(awk -F= '/WANDEV=/ { print $2 }' /etc/network.$board_name)" = "$(awk -F= '/SWITCHDEV=/ { print $2 }' /etc/network.$board_name)" ] ; then > + wanif=$(uci -q get network.wan.ifname) > + link=$(cat /sys/class/net/${wanif}/operstate) > + if [ "$link" = "up" ] ; then > + speed="connected" > + else > + speed="no link" > + fi > + printf '%-10s%-5s%-13s%s\n' "WAN-Port: " "${link} " "- WAN " "@ $speed" > fi > - printf '%-10s%-5s%-13s%s\n' "WAN-Port: " "${link} " "- WAN " "@ $speed" > -fi > > -for internalport in $portorder > -do > - line=$(swconfig dev switch0 port "$internalport" show | tr -d '\n' | tr -d '\t') > - port=$(echo "$line" | sed 's/.* port:\([^ ]*\) .*/\1/') > - printf '%-10s' "Port #${port}: " > - format_port "${line}" > -done > -echo "" > + for internalport in $portorder > + do > + line=$(swconfig dev switch0 port "$internalport" show | tr -d '\n' | tr -d '\t') > + port=$(echo "$line" | sed 's/.* port:\([^ ]*\) .*/\1/') > + printf '%-10s' "Port #${port}: " > + format_port "${line}" > + done > + echo "" > > -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/') > - if echo "$portorder" | grep -q "$port" ; then > - continue > + 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/') > + if echo "$portorder" | grep -q "$port" ; then > + continue > + fi > + printf '%-10s' "Port #${port}: " > + format_port "${line}" > + done > +else > + echo "-> PORT ASSIGNMENT" > + if grep -q "ONE_PORT" "/etc/network.$board_name" || grep -q "ETHPORT" "/etc/network.$board_name" ; then > + # Device has a port set by $ETHMODE > + . /etc/network.mode > + . /etc/network.config > + echo "Port Modus: $ETHMODE" > fi > - printf '%-10s' "Port #${port}: " > - format_port "${line}" > -done > +fi > > echo "" > echo "END"
Am Sonntag, den 12.11.2017, 18:19 +0100 schrieb Christian Dresel: > hi > > Reviewed-by: Christian Dresel <fff@chrisi01.de> Und applied. Tim > > Es sind wieder ein paar mal Leerzeichen vor den ; am Zeilenende, hatten > wir ja glaub ich schon mal. > > mfg > > Christian > > On 25.10.2017 15:01, Adrian Schmutzler wrote: > > Changes in v2: > > Fix VLAN grep to also work on 1043 V1. > > > > Changes in v3: > > Removed part "fix traffic statistics" as this is addressed > > in a separate patch. > > > > Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> > > > > Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> > > --- > > .../fff/fff-support/files/usr/sbin/show_info | 96 ++++++++++++---------- > > 1 file changed, 53 insertions(+), 43 deletions(-) > > > > diff --git a/src/packages/fff/fff-support/files/usr/sbin/show_info b/src/packages/fff/fff-support/files/usr/sbin/show_info > > index 95c8853..e446e41 100755 > > --- a/src/packages/fff/fff-support/files/usr/sbin/show_info > > +++ b/src/packages/fff/fff-support/files/usr/sbin/show_info > > @@ -41,7 +41,7 @@ format_port() { > > format_state "${port}" > > printf '%-26s' "@ $speed $duplex " > > > > - swconfig dev switch0 show | grep "VLAN\s" | while read line ; do > > + swconfig dev switch0 show | grep -E "VLAN\s[0-9]+:[ \t]*$" | while read line ; do > > vid=$(echo "$line" | sed 's/.*VLAN \([^:]*\).*/\1/') > > vports=$(swconfig dev switch0 vlan "$vid" show | grep 'ports:') > > if echo "$vports" | grep -q "${port}t" ; then > > @@ -127,16 +127,16 @@ 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 "Empfangen: $(cat /sys/class/net/br-mesh/statistics/rx_bytes 2> /dev/null | human_bytes)" > > +echo "Gesendet: $(cat /sys/class/net/br-mesh/statistics/tx_bytes 2> /dev/null | 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 "Empfangen: $(cat /sys/class/net/${wanif}/statistics/rx_bytes 2> /dev/null | human_bytes)" > > +echo "Gesendet: $(cat /sys/class/net/${wanif}/statistics/tx_bytes 2> /dev/null | human_bytes)" > > echo "IPv4 Adressen: $(addr 4 $wanif)" > > echo "IPv6 Adressen: $(addr 6 $wanif)" > > > > @@ -151,7 +151,7 @@ echo "E-Mail Adresse: $(uci -q get 'system.@system[0].contact')" > > > > echo "" > > echo "-> BITRATEN-BEGRENZUNG" > > -if [ "$(uci -q get 'simple-tc.example.enabled')" == "1" ] ; then > > +if [ "$(uci -q get 'simple-tc.example.enabled')" = "1" ] ; then > > echo "Aktiv: ja" > > else > > echo "Aktiv: nein" > > @@ -164,49 +164,59 @@ if grep -q 'PORTORDER=' /etc/network.$board_name ; then > > fi > > > > echo "" > > -if [ -n "$portorder" ] ; then > > - echo "-> SWITCH (tatsaechliche Portreihenfolge)" > > -else > > - echo "-> SWITCH (interne logische Portreihenfolge)" > > -fi > > +if swconfig list | grep -q switch0 ; then > > + if [ -n "$portorder" ] ; then > > + echo "-> SWITCH (tatsaechliche Portreihenfolge)" > > + else > > + echo "-> SWITCH (interne logische Portreihenfolge)" > > + fi > > > > -printf '%-54s' "VLAN-IDs:" > > -swconfig dev switch0 show | grep "VLAN\s" | while read line ; do > > - vid=$(echo "$line" | sed 's/.*VLAN \([^:]*\).*/\1/') > > - printf '%-2s ' "$vid" > > -done > > -echo "" > > -echo "" > > + printf '%-54s' "VLAN-IDs:" > > + swconfig dev switch0 show | grep -E "VLAN\s[0-9]+:[ \t]*$" | while read line ; do > > + vid=$(echo "$line" | sed 's/.*VLAN \([^:]*\).*/\1/') > > + printf '%-2s ' "$vid" > > + done > > + echo "" > > + echo "" > > > > -if [ ! "$(awk -F= '/WANDEV=/ { print $2 }' /etc/network.$board_name)" = "$(awk -F= '/SWITCHDEV=/ { print $2 }' /etc/network.$board_name)" ] ; then > > - wanif=$(uci -q get network.wan.ifname) > > - link=$(cat /sys/class/net/${wanif}/operstate) > > - if [ "$link" = "up" ] ; then > > - speed="connected" > > - else > > - speed="no link" > > + if [ ! "$(awk -F= '/WANDEV=/ { print $2 }' /etc/network.$board_name)" = "$(awk -F= '/SWITCHDEV=/ { print $2 }' /etc/network.$board_name)" ] ; then > > + wanif=$(uci -q get network.wan.ifname) > > + link=$(cat /sys/class/net/${wanif}/operstate) > > + if [ "$link" = "up" ] ; then > > + speed="connected" > > + else > > + speed="no link" > > + fi > > + printf '%-10s%-5s%-13s%s\n' "WAN-Port: " "${link} " "- WAN " "@ $speed" > > fi > > - printf '%-10s%-5s%-13s%s\n' "WAN-Port: " "${link} " "- WAN " "@ $speed" > > -fi > > > > -for internalport in $portorder > > -do > > - line=$(swconfig dev switch0 port "$internalport" show | tr -d '\n' | tr -d '\t') > > - port=$(echo "$line" | sed 's/.* port:\([^ ]*\) .*/\1/') > > - printf '%-10s' "Port #${port}: " > > - format_port "${line}" > > -done > > -echo "" > > + for internalport in $portorder > > + do > > + line=$(swconfig dev switch0 port "$internalport" show | tr -d '\n' | tr -d '\t') > > + port=$(echo "$line" | sed 's/.* port:\([^ ]*\) .*/\1/') > > + printf '%-10s' "Port #${port}: " > > + format_port "${line}" > > + done > > + echo "" > > > > -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/') > > - if echo "$portorder" | grep -q "$port" ; then > > - continue > > + 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/') > > + if echo "$portorder" | grep -q "$port" ; then > > + continue > > + fi > > + printf '%-10s' "Port #${port}: " > > + format_port "${line}" > > + done > > +else > > + echo "-> PORT ASSIGNMENT" > > + if grep -q "ONE_PORT" "/etc/network.$board_name" || grep -q "ETHPORT" "/etc/network.$board_name" ; then > > + # Device has a port set by $ETHMODE > > + . /etc/network.mode > > + . /etc/network.config > > + echo "Port Modus: $ETHMODE" > > fi > > - printf '%-10s' "Port #${port}: " > > - format_port "${line}" > > -done > > +fi > > > > echo "" > > echo "END" > > > -- > franken-dev mailing list > franken-dev@freifunk.net > http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net