diff --git a/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher b/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
index d835acd..cffb0d2 100755
--- a/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
+++ b/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
@@ -9,15 +9,15 @@ test -f /tmp/started || exit
#Get the configuration from the uci configuration file
#If it does not exists, then get it from a normal bash file with variables.
if [ -f /etc/config/nodewatcher ];then
- SCRIPT_ERROR_LEVEL=`uci get nodewatcher.@script[0].error_level`
- SCRIPT_LOGFILE=`uci get nodewatcher.@script[0].logfile`
- SCRIPT_DATA_FILE=`uci get nodewatcher.@script[0].data_file`
- MESH_INTERFACE=`uci get nodewatcher.@network[0].mesh_interface`
- IFACEBLACKLIST=`uci get nodewatcher.@network[0].iface_blacklist`
- IPWHITELIST=`uci get nodewatcher.@network[0].ip_whitelist`
- SCRIPT_STATUS_FILE=`uci get nodewatcher.@script[0].status_text_file`
+ SCRIPT_ERROR_LEVEL=`uci get nodewatcher.@script[0].error_level`
+ SCRIPT_LOGFILE=`uci get nodewatcher.@script[0].logfile`
+ SCRIPT_DATA_FILE=`uci get nodewatcher.@script[0].data_file`
+ MESH_INTERFACE=`uci get nodewatcher.@network[0].mesh_interface`
+ IFACEBLACKLIST=`uci get nodewatcher.@network[0].iface_blacklist`
+ IPWHITELIST=`uci get nodewatcher.@network[0].ip_whitelist`
+ SCRIPT_STATUS_FILE=`uci get nodewatcher.@script[0].status_text_file`
else
- . `dirname $0`/nodewatcher_config
+ . `dirname $0`/nodewatcher_config
fi
if [ $SCRIPT_ERROR_LEVEL -gt "1" ]; then
@@ -32,73 +32,73 @@ fi
#this method checks id the logfile has bekome too big and deletes the first X lines
delete_log() {
- if [ -f $SCRIPT_LOGFILE ]; then
- if [ `ls -la $SCRIPT_LOGFILE | awk '{ print $5 }'` -gt "6000" ]; then
- sed -i '1,60d' $SCRIPT_LOGFILE
+ if [ -f $SCRIPT_LOGFILE ]; then
+ if [ `ls -la $SCRIPT_LOGFILE | awk '{ print $5 }'` -gt "6000" ]; then
+ sed -i '1,60d' $SCRIPT_LOGFILE
err "`date`: Logfile has been made smaller"
- fi
- fi
+ fi
+ fi
}
inArray() {
- local value
- for value in $1; do
- if [ "$value" = "$2" ]; then
- return 0
- fi
- done
- return 1
+ local value
+ for value in $1; do
+ if [ "$value" = "$2" ]; then
+ return 0
+ fi
+ done
+ return 1
}
#this method generates the crawl data xml file that is beeing fetched by netmon
#and provided by a small local httpd
crawl() {
- #Get system data from other locations
- err "`date`: Collecting basic system status data"
- hostname="$(cat /proc/sys/kernel/hostname)"
- description="$(uci get system.@system[0].description)"
- if [ -n "$description" ]; then
- description="$description"
- fi
- latitude="$(uci get system.@system[0].latitude)"
- longitude="$(uci get system.@system[0].longitude)"
- if [ -n "$longitude" -a -n "$latitude" ]; then
- geo="$latitude$longitude";
- fi
- position_comment="$(uci get system.@system[0].position_comment)"
- if [ -n "$position_comment" ]; then
- position_comment="$position_comment"
- fi
- contact="$(uci get system.@system[0].contact)"
- if [ -n "$contact" ]; then
- contact="$contact"
- fi
- uptime=$(awk '{ printf ""$1""$2"" }' /proc/uptime)
-
+ #Get system data from other locations
+ err "`date`: Collecting basic system status data"
+ hostname="$(cat /proc/sys/kernel/hostname)"
+ description="$(uci get system.@system[0].description)"
+ if [ -n "$description" ]; then
+ description="$description"
+ fi
+ latitude="$(uci get system.@system[0].latitude)"
+ longitude="$(uci get system.@system[0].longitude)"
+ if [ -n "$longitude" -a -n "$latitude" ]; then
+ geo="$latitude$longitude";
+ fi
+ position_comment="$(uci get system.@system[0].position_comment)"
+ if [ -n "$position_comment" ]; then
+ position_comment="$position_comment"
+ fi
+ contact="$(uci get system.@system[0].contact)"
+ if [ -n "$contact" ]; then
+ contact="$contact"
+ fi
+ uptime=$(awk '{ printf ""$1""$2"" }' /proc/uptime)
+
memory=$(awk '
/^MemTotal/ { printf ""$2"" }
/^Cached:/ { printf ""$2"" }
/^Buffers/ { printf ""$2"" }
/^MemFree/ { printf ""$2"" }
' /proc/meminfo)
- cpu=$(awk -F': ' '
+ cpu=$(awk -F': ' '
/model/ { printf ""$2"" }
/system type/ { printf ""$2"" }
' /proc/cpuinfo)
- model="$(cat /var/sysinfo/model)"
- local_time="`date +%s`"
- load=$(awk '{ printf ""$3""$4"" }' /proc/loadavg)
+ model="$(cat /var/sysinfo/model)"
+ local_time="`date +%s`"
+ load=$(awk '{ printf ""$3""$4"" }' /proc/loadavg)
err "`date`: Collecting version information"
-
- batman_adv_version=$(cat /sys/module/batman_adv/version)
- kernel_version=$(uname -r)
- fastd_version=$(fastd -v | awk '{ print $2 }')
- nodewatcher_version=$SCRIPT_VERSION
- if [ -f "$SCRIPT_STATUS_FILE" ]; then
- status_text="$(cat "$SCRIPT_STATUS_FILE")"
- fi
+ batman_adv_version=$(cat /sys/module/batman_adv/version)
+ kernel_version=$(uname -r)
+ fastd_version=$(fastd -v | awk '{ print $2 }')
+ nodewatcher_version=$SCRIPT_VERSION
+
+ if [ -f "$SCRIPT_STATUS_FILE" ]; then
+ status_text="$(cat "$SCRIPT_STATUS_FILE")"
+ fi
# example for /etc/openwrt_release:
#DISTRIB_ID="OpenWrt"
@@ -107,7 +107,7 @@ crawl() {
#DISTRIB_CODENAME="attitude_adjustment"
#DISTRIB_TARGET="atheros/generic"
#DISTRIB_DESCRIPTION="OpenWrt Attitude Adjustment 12.09-rc1"
- . /etc/openwrt_release
+ . /etc/openwrt_release
distname=$DISTRIB_ID
distversion=$DISTRIB_RELEASE
@@ -116,14 +116,14 @@ crawl() {
#BUILD_DATE="build date: Di 29. Jan 19:33:34 CET 2013"
#OPENWRT_CORE_REVISION="35298"
#OPENWRT_FEEDS_PACKAGES_REVISION="35298"
- . /etc/firmware_release
- SYSTEM_DATA="online$status_text$hostname${description}${geo}${position_comment}${contact}$distname$distversion$cpu$model$memory$load$uptime$local_time$batman_adv_version$kernel_version$fastd_version$nodewatcher_version$FIRMWARE_VERSION$FIRMWARE_COMMUNITY$BUILD_DATE$OPENWRT_CORE_REVISION$OPENWRT_FEEDS_PACKAGES_REVISION"
+ . /etc/firmware_release
+ SYSTEM_DATA="online$status_text$hostname${description}${geo}${position_comment}${contact}$distname$distversion$cpu$model$memory$load$uptime$local_time$batman_adv_version$kernel_version$fastd_version$nodewatcher_version$FIRMWARE_VERSION$FIRMWARE_COMMUNITY$BUILD_DATE$OPENWRT_CORE_REVISION$OPENWRT_FEEDS_PACKAGES_REVISION"
err "`date`: Collecting information from network interfaces"
- #Get interfaces
- interface_data=""
- #Loop interfaces
+ #Get interfaces
+ interface_data=""
+ #Loop interfaces
for filename in `grep 'up\|unknown' /sys/class/net/*/operstate`; do
ifpath=${filename%/operstate*}
iface=${ifpath#/sys/class/net/}
@@ -145,7 +145,7 @@ crawl() {
traffic_rx=`cat $ifpath/statistics/rx_bytes`
traffic_tx=`cat $ifpath/statistics/tx_bytes`
-
+
interface_data=$interface_data"<$iface>$iface$addrs$traffic_rx$traffic_tx"
interface_data=$interface_data$(iwconfig ${iface} 2>/dev/null | awk -F':' '
@@ -155,10 +155,10 @@ crawl() {
/Freq/{ split($3, f, " "); printf ""f[1]f[2]"" }
/Tx-Power/{ split($0, p, "="); sub(/[[:space:]]*$/, "", p[2]); printf ""p[2]"" }
')"$iface>"
- done
+ done
err "`date`: Collecting information from batman advanced and it´s interfaces"
- #B.A.T.M.A.N. advanced
+ #B.A.T.M.A.N. advanced
if [ -f /sys/module/batman_adv/version ]; then
for iface in $(grep active /sys/class/net/*/batman_adv/iface_status); do
status=${iface#*:}
@@ -184,41 +184,41 @@ crawl() {
i++
}
}' /sys/kernel/debug/batman_adv/bat0/originators)
-
- batman_adv_gateway_mode=$(batctl gw)
-
- batman_adv_gateway_list=$(awk \
- 'BEGIN { FS=" "; i=0 }
- /Gateway/ { next }
- /No gateways/ { next }
- { sub("=>", "true", $0)
- sub(" ", "false", $0)
- sub("\\(", "", $0)
- sub("\\)", "", $0)
- sub("\\[", "", $0)
- sub("\\]:", "", $0)
- sub(" ", " ", $0)
- printf ""$1""$2""$3""$4""$5""$6" "$7" "$8""
- i++
- }' /sys/kernel/debug/batman_adv/bat0/gateways)
+
+ batman_adv_gateway_mode=$(batctl gw)
+
+ batman_adv_gateway_list=$(awk \
+ 'BEGIN { FS=" "; i=0 }
+ /Gateway/ { next }
+ /No gateways/ { next }
+ { sub("=>", "true", $0)
+ sub(" ", "false", $0)
+ sub("\\(", "", $0)
+ sub("\\)", "", $0)
+ sub("\\[", "", $0)
+ sub("\\]:", "", $0)
+ sub(" ", " ", $0)
+ printf ""$1""$2""$3""$4""$5""$6" "$7" "$8""
+ i++
+ }' /sys/kernel/debug/batman_adv/bat0/gateways)
fi
err "`date`: Collecting information about conected clients"
- #CLIENTS
- client_count=0
- CLIENT_INTERFACES=$(bridge link | awk '$2 !~/^bat/{ printf $2" " }')
- for clientif in ${CLIENT_INTERFACES}; do
- local cc=$(bridge fdb show br $MESH_INTERFACE brport $clientif | grep -v self | grep -v permanent -c)
- client_count=$((client_count + $cc))
- done
+ #CLIENTS
+ client_count=0
+ CLIENT_INTERFACES=$(bridge link | awk '$2 !~/^bat/{ printf $2" " }')
+ for clientif in ${CLIENT_INTERFACES}; do
+ local cc=$(bridge fdb show br $MESH_INTERFACE brport $clientif | grep -v self | grep -v permanent -c)
+ client_count=$((client_count + $cc))
+ done
err "`date`: Putting all information into a XML-File and save it at "$SCRIPT_DATA_FILE
- DATA="$SYSTEM_DATA$interface_data$BATMAN_ADV_INTERFACES$batman_adv_originators$batman_adv_gateway_mode$batman_adv_gateway_list$client_count"
+ DATA="$SYSTEM_DATA$interface_data$BATMAN_ADV_INTERFACES$batman_adv_originators$batman_adv_gateway_mode$batman_adv_gateway_list$client_count"
- #write data to hxml file that provides the data on httpd
- SCRIPT_DATA_DIR=$(dirname $SCRIPT_DATA_FILE)
- test -d $SCRIPT_DATA_DIR || mkdir -p $SCRIPT_DATA_DIR
- echo $DATA | gzip | tee $SCRIPT_DATA_FILE | alfred -s 64
+ #write data to hxml file that provides the data on httpd
+ SCRIPT_DATA_DIR=$(dirname $SCRIPT_DATA_FILE)
+ test -d $SCRIPT_DATA_DIR || mkdir -p $SCRIPT_DATA_DIR
+ echo $DATA | gzip | tee $SCRIPT_DATA_FILE | alfred -s 64
}
LANG=C