summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2021-06-27 09:43:27 +0200
committerErich Eckner <git@eckner.net>2021-06-27 09:43:27 +0200
commitd4524b33b6e36db5591f816599554634f8e39348 (patch)
tree91da1f95670e4ffaf1cb8cdaf689439f4986eb8d
parent42bb21003618b4620c084871c53e067d58ec0597 (diff)
downloadprint-status-d4524b33b6e36db5591f816599554634f8e39348.tar.xz
better sorting
-rwxr-xr-xprint-status22
1 files changed, 19 insertions, 3 deletions
diff --git a/print-status b/print-status
index b128f4b..c2bdf8a 100755
--- a/print-status
+++ b/print-status
@@ -14,9 +14,25 @@
p
}
' /proc/mdstat \
- | sort -u
- find /sys/block/ -mindepth 1 -maxdepth 1 -name 'md*' -printf '%f: ' -exec cat {}/md/mismatch_cnt \; \
- | sort -u
+ | sed 's@^md\([0-9]\+\):@\1 \0@' \
+ | sort -k1n,1 \
+ | sed 's@^\S\+ @@'
+ find /sys/block/ -mindepth 1 -maxdepth 1 -name 'md*' -printf '%f\n' \
+ | sed 's@^md@@' \
+ | sort -n \
+ | while read -r md; do
+ printf 'md%s: %s' \
+ "${md}" \
+ "$(
+ tr -d '\n' <"/sys/block/md${md}/md/array_state"
+ )"
+ if [ -f "/sys/block/md${md}/md/mismatch_cnt" ]; then
+ printf ' '
+ cat "/sys/block/md${md}/md/mismatch_cnt"
+ else
+ printf '\n'
+ fi
+ done
if command -v ssacli >/dev/null 2>&1; then
ssacli ctrl slot=1 ld all show \
| grep -v '^\s*$'