[PATCH] fff-support: Provide shell script with similar output to WebUI
Dominik Heidler
dominik at heidler.eu
Sa Jul 29 17:04:44 CEST 2017
Hi,
sieht gut aus.
Reviewed-by: Dominik Heidler <dominik at heidler.eu>
Tested-by: Dominik Heidler <dominik at heidler.eu>
Am 29.07.2017 um 12:40 schrieb Adrian Schmutzler:
> Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
>
> Tested-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
> ---
> .../fff/fff-support/files/etc/show_info.sh | 123 +++++++++++++++++++++
> 1 file changed, 123 insertions(+)
> create mode 100755 src/packages/fff/fff-support/files/etc/show_info.sh
>
> diff --git a/src/packages/fff/fff-support/files/etc/show_info.sh b/src/packages/fff/fff-support/files/etc/show_info.sh
> new file mode 100755
> index 0000000..17fbb9f
> --- /dev/null
> +++ b/src/packages/fff/fff-support/files/etc/show_info.sh
> @@ -0,0 +1,123 @@
> +#!/bin/sh
> +
> +. /etc/community.cfg
> +. /etc/firmware_release
> +
> +HOSTNAME=$(uci -q get 'system. at 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. at system[0].description')"
> +echo "GPS Breitengrad: $(uci -q get 'system. at system[0].latitude')"
> +echo "GPS Laengengrad: $(uci -q get 'system. at system[0].longitude')"
> +echo "Standortbeschreibung: $(uci -q get 'system. at system[0].position_comment')"
> +echo "E-Mail Adresse: $(uci -q get 'system. at 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"
>
Mehr Informationen über die Mailingliste franken-dev