#!/bin/bash . /etc/print-status.conf { printf 'Status Of %s\n' \ "$(uname -n | cut -d. -f1)" if [ -n "${!watch_dirs[@]}" ]; then printf '%s\n' \ '

Partitions

' for dir in "${watch_dirs[@]}"; do { du -sxh "${dir}" df -h "${dir}" \ | sed '1d' } \ | tr '\n' ' ' printf '\n' done \ | awk '{ print $2 ": " $1 "B (partition: " $5 "B of " $4 "B used, " $6 "B free)
" }' fi cat <Crypt Devices EOF find /dev/mapper -mindepth 1 -maxdepth 1 \( -name 'leg*' -o -name 'foot*' \) -printf '%f\n' \ | sort -u \ | xargs -rn1 cryptsetup status \ | sed ' s/^\s\+// s/\s\+$// \,^/dev/mapper/, !d / is active and is in use\.$/ { s,.*,\0, b } s,.*,\0, ' \ | sed ' s/$/
/ ' cat <Software RAIDs EOF { sed -n ' /^Personalities/d /^\S/ { N s/^\(\S\+\)\s*:.*\n\s*\([0-9]\)/\1: \2/ T p } s/^\s\+\(\[[^][]\+]\)\s\+\(\S\+\)\s\+=\s\+\(\S\+\)\s\+\S\+\s\+\(finish=\S\+\)\s.*$/\2 \3 \1 \4/ T p ' /proc/mdstat \ | sort -u \ | while read -r line; do if [ -z "${line%%* finish=*min*}" ]; then duration="${line##* finish=}" duration="${duration%%min*}" time=$( date +'%F %T' -d@$(( $(date +%s) + $(echo "60 * ${duration}" | bc -l | sed 's/\..*$//') )) ) printf '%s (%s)\n' "${line}" "${time}" else printf '%s\n' "${line}" fi done \ | sed ' s,.*\[U\+\]$,\0, t s,^\(re\(shape\|covery\|sync\) \S\+\) \[\(\S*\)>\(\.*\)\] \(\S\+\s\+\S\+\s\+\S\+\)$,\1 [\3\>\4] \5, t s,.*,\0, ' find /sys/block/ -mindepth 1 -maxdepth 1 -name 'md*' -printf '%f\n' \ | sed 's@^md@@' \ | sort -n \ | while read -r md; do if [ -f "/sys/block/md${md}/md/mismatch_cnt" ]; then sed ' s/^/md'"${md}"': / s/$/ mismatches/ /^\S\+: 0 mismatches$/ { s,.*,\0, b } s,.*,\0, ' "/sys/block/md${md}/md/mismatch_cnt" else printf 'md%s\n' "${md}" fi done } \ | sed ' s/$/
/ ' if command -v ssacli >/dev/null 2>&1; then cat <Hardware RAIDs EOF ssacli ctrl slot=1 ld all show \ | sed ' s/^\s\+// s/\s\+$// /^$/d /^logicaldrive/ !b / OK)$/ { s,.*,\0, b } s,.*,\0, ' \ | sed ' s/$/
/ ' fi cat <Backups EOF last-backups \ | sed ' /VERALTET\|LEER/ ! s/^/ok/ ' \ | awk '{ print "" }' \ | sed ' s/^\(,,g b } s,,,g ' cat < EOF if [ -f "${http_dir}/index.html" ]; then cat < EOF OUTPUT="${http_dir}/index.html" backup-progress \ | tr -d '()' \ | awk '{print ""}' cat < EOF fi cat <Status EOF printf 'Bericht erstellt am %s um %s Uhr (%s).
\n' \ "$( date '+%F' )" \ "$( date '+%H:%M:%S' )" \ "$( date '+%Z' )" cat < EOF } | \ if mountpoint -q "${http_dir}"; then sponge "${http_dir}/index.html" else cat fi
StatusNameLetztes erfolgreiches Backup
" $1 "" $2 "" $3 "
[^<>]*\)_laeuft/\1 (l\äuft)/ /^
ok\( [^<>]\+\)\?\([^<>]\+\)\1\([^<>]\+\)\1
NameFortschrittbisherige Größe
" $1 "" $2 " " $3 "" $4 " " $5 "