#!/usr/bin/haserl <% echo -en "content-type: text/plain\r\n\r\n" 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)}' } print() { echo " option $1 '$2'" } printList() { for item in $2; do echo " list $1 '$item'" done } #include OpenWrt version . /etc/openwrt_release . /etc/firmware_release echo "package misc" echo "config data 'data'" print 'mac' "$(uci -q get network.mesh.macaddr)" wanif=$(uci -q get network.wan.ifname) printList 'freifunk_addr4' "$(addr 4 br-mesh)" printList 'freifunk_addr6' "$(addr 6 br-mesh)" printList 'wan_addr4' "$(addr 4 $wanif)" printList 'wan_addr6' "$(addr 6 $wanif)" up="$(uptime)" print 'load' "${up##*:}" uptime="${up%%,*}" print 'uptime' "${uptime##*up}" print 'uname' "$(uname -s -m -r)" print 'date' "$(date)" if [ $(sockread /var/run/fastd.status < /dev/null 2> /dev/null | grep -c '"connection": {') -gt 0 ]; then print 'has_vpn' 'Ja' else print 'has_vpn' 'Nein' fi if [ -n "$(default_gw 4 $wanif)" -o -n "$(default_gw 6 $wanif)" ]; then print 'has_internet' 'Ja' else print 'has_internet' 'Nein' fi print 'node_count' "$((`cat /sys/kernel/debug/batman_adv/bat0/transtable_global | grep '^ [^ ]' | cut -b 39-55 | sort | uniq | wc -l 2> /dev/null`+1))" print 'neigh_count' "$(cat /sys/kernel/debug/batman_adv/bat0/originators | grep '^[0-9a-f]' | cut -b 37-53 | sort | uniq | wc -l 2> /dev/null)" print 'firmware_version' "$FIRMWARE_VERSION" print 'fastd_version' "$(fastd --version 2> /dev/null | cut -d' ' -f 2)" print 'batman_version' "$(cat /sys/module/batman_adv/version 2> /dev/null)" print 'openwrt_version' "$DISTRIB_DESCRIPTION" name="$(uci get -q 'system.@system[0].hostname')" print 'name' "${name:--}" print 'model' "$(cat /tmp/sysinfo/model 2> /dev/null)" print 'freifunk_user_count' "$(cat /sys/kernel/debug/batman_adv/bat0/transtable_local 2> /dev/null | grep -c 'W')" print 'freifunk_rx_bytes' "$(cat /sys/class/net/br-mesh/statistics/rx_bytes 2> /dev/null)" print 'freifunk_tx_bytes' "$(cat /sys/class/net/br-mesh/statistics/tx_bytes 2> /dev/null)" print 'wan_rx_bytes' "$(cat /sys/class/net/$wanif/statistics/rx_bytes 2> /dev/null)" print 'wan_tx_bytes' "$(cat /sys/class/net/$wanif/statistics/tx_bytes 2> /dev/null)" %>