--- /opt/sbin/munin-node.orig 2013-01-27 15:13:51.869007214 +0100 +++ /opt/sbin/munin-node 2013-01-27 16:11:20.536006950 +0100 @@ -133,7 +133,7 @@ if [ -n "$(which ethtool)" ]; then if [ -x "$(which ethtool)" ]; then if ethtool $1 | grep -q Speed; then - MAX=$(($(ethtool $1 | grep Speed | sed -e 's/[[:space:]]\{1,\}/ /g' -e 's/^ //' -e 's/M.*//' | cut -d\ -f2) * 1000000)) + MAX=$(($(ethtool $1 | grep Speed | sed -e 's/[[:space:]]\{1,\}/ /g' -e 's/^ //' -e 's/M.*//' | sed -e 's/Unknown\!/0/' | cut -d\ -f2) * 1000000)) echo "up.max $MAX" echo "down.max $MAX" fi @@ -535,19 +535,31 @@ for INTER in $(grep '^ *\(ppp\|eth\|wlan\|ath\|ra\|ipsec\|tap\|br-\)\([^:]\)\{1,\}:' /proc/net/dev | cut -f1 -d: | sed 's/ //g s/\-/_/g'); do - INTERRES=$(echo $INTER | sed 's/\./VLAN/') - RES="$RES if_$INTERRES" - eval "fetch_if_${INTERRES}() { fetch_if $INTER $@; };" - eval "config_if_${INTERRES}() { config_if $INTER $@; };" + if [ -n "$(which ethtool)" ]; then + if [ -x "$(which ethtool)" ]; then + if [ -n "$(ethtool $INTER | grep 'Link detected: yes')" ]; then + INTERRES=$(echo $INTER | sed 's/\./VLAN/') + RES="$RES if_$INTERRES" + eval "fetch_if_${INTERRES}() { fetch_if $INTER $@; };" + eval "config_if_${INTERRES}() { config_if $INTER $@; };" + fi + fi + fi done elif [ "$PLUG" = "if_err_" ]; then for INTER in $(grep '^ *\(ppp\|eth\|wlan\|ath\|ra\|ipsec\|tap\|br-\)\([^:]\)\{1,\}:' /proc/net/dev | cut -f1 -d: | sed 's/ //g s/\-/_/g'); do - INTERRES=$(echo $INTER | sed 's/\./VLAN/') - RES="$RES if_err_$INTERRES" - eval "fetch_if_err_${INTERRES}() { fetch_if_err $INTER $@; };" - eval "config_if_err_${INTERRES}() { config_if_err $INTER $@; };" + if [ -n "$(which ethtool)" ]; then + if [ -x "$(which ethtool)" ]; then + if [ -n "$(ethtool $INTER | grep 'Link detected: yes')" ]; then + INTERRES=$(echo $INTER | sed 's/\./VLAN/') + RES="$RES if_err_$INTERRES" + eval "fetch_if_err_${INTERRES}() { fetch_if_err $INTER $@; };" + eval "config_if_err_${INTERRES}() { config_if_err $INTER $@; };" + fi + fi + fi done elif [ "$PLUG" = "netstat" ]; then if netstat -s >/dev/null 2>&1; then