#!/bin/bash . /etc/print-status.conf { find /dev/mapper -mindepth 1 -maxdepth 1 \( -name 'leg*' -o -name 'foot*' \) -printf '%f\n' \ | sort -u \ | xargs -rn1 cryptsetup status \ | grep -v '^\s\+device:' sed -n ' /^Personalities/d /^\S/ { N s/^\(\S\+\)\s*:.*\n\s*\([0-9]\)/\1: \2/ T p } ' /proc/mdstat \ | 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}" \ "$( sed ' s/^clean$/active/ ' "/sys/block/md${md}/md/array_state" \ | tr -d '\n' )" 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*$' fi } | \ if mountpoint -q "${http_dir}"; then sponge "${http_dir}/status" date +%s > "${http_dir}/status.time" else cat fi