|
@@ -1,6 +1,6 @@
|
|
|
#! /bin/bash
|
|
|
# aoe-stat - collate and present information about AoE storage
|
|
|
-# Copyright 2009, CORAID, Inc., and licensed under GPL v.2.
|
|
|
+# Copyright 2012, CORAID, Inc., and licensed under GPL v.2.
|
|
|
|
|
|
set -e
|
|
|
me=`basename $0`
|
|
@@ -15,7 +15,7 @@ test ! -d "$sysd/block" && {
|
|
|
exit 1
|
|
|
}
|
|
|
|
|
|
-function checknode () {
|
|
|
+checknode () {
|
|
|
devname="$1"
|
|
|
m_sysfs="$2"
|
|
|
if test -b "@devdir@/$devname"; then
|
|
@@ -28,6 +28,16 @@ EOF
|
|
|
fi
|
|
|
}
|
|
|
|
|
|
+NA="(NA)"
|
|
|
+cat_or_NA () {
|
|
|
+ f="${1?}"
|
|
|
+ if test -r "$f"; then
|
|
|
+ cat "$f"
|
|
|
+ else
|
|
|
+ echo "$NA"
|
|
|
+ fi
|
|
|
+}
|
|
|
+
|
|
|
re=.
|
|
|
if test $# -gt 0; then
|
|
|
re=$1
|
|
@@ -49,23 +59,34 @@ for d in `ls -d $sysd/block/*e[0-9]*\.[0-9]* 2>/dev/null | grep -v p` end; do
|
|
|
test $d = end && continue
|
|
|
|
|
|
dev=`echo "$d" | sed 's/.*!//'`
|
|
|
- sectors="`cat \"$d/size\"`"
|
|
|
- minor="`awk -F: '{print $2}' \"$d/dev\"`"
|
|
|
- checknode "$dev" "$minor"
|
|
|
- psize=$(((512000 * $sectors) / (1000 * 1000 * 1000)))
|
|
|
- psize=`printf "%04d\n" $psize | sed 's!\(...\)$!.\1!'`
|
|
|
- if test "$payload" = "yes"; then
|
|
|
+ if test -r "$d"/dev; then
|
|
|
+ minor="`awk -F: '{print $2}' \"$d/dev\"`"
|
|
|
+ checknode "$dev" "$minor"
|
|
|
+ else
|
|
|
+ minor="$NA"
|
|
|
+ fi
|
|
|
+ sectors=`cat_or_NA "$d"/size`
|
|
|
+ if test "$sectors" = "$NA"; then
|
|
|
+ psize="$NA"
|
|
|
+ else
|
|
|
+ psize=$(((512000 * $sectors) / (1000 * 1000 * 1000)))
|
|
|
+ psize=`printf "%04d\n" $psize | sed 's!\(...\)$!.\1!'`GB
|
|
|
+ fi
|
|
|
+ netif=`cat_or_NA "$d"/netif`
|
|
|
+ state=`cat_or_NA "$d"/state`
|
|
|
+ payload=`cat_or_NA "$d"/payload`
|
|
|
+ if test "$payload" != "$NA"; then
|
|
|
printf "$format" \
|
|
|
"$dev" \
|
|
|
- "${psize}GB" \
|
|
|
- "`cat \"$d/netif\"`" \
|
|
|
- "`cat \"$d/payload\"`" \
|
|
|
- "`cat \"$d/state\"`"
|
|
|
+ "${psize}" \
|
|
|
+ "$netif" \
|
|
|
+ "$payload" \
|
|
|
+ "$state"
|
|
|
else
|
|
|
printf "$format" \
|
|
|
"$dev" \
|
|
|
- "${psize}GB" \
|
|
|
- "`cat \"$d/netif\"`" \
|
|
|
- "`cat \"$d/state\"`"
|
|
|
+ "${psize}" \
|
|
|
+ "$netif" \
|
|
|
+ "$state"
|
|
|
fi
|
|
|
done | sort | grep $re
|