X-Git-Url: https://iankelling.org/git/?p=distro-setup;a=blobdiff_plain;f=system-status;h=3ac05d579dba88874ea5c1603a6641e107b0b09f;hp=b31032ca1b8347a693767494c43f34eff197bbe2;hb=768363d8771edb9d9ed82425fa772d77b90139c0;hpb=62c4ef27d7ce99c442339d4868aa75b2edadfb8f diff --git a/system-status b/system-status index b31032c..3ac05d5 100755 --- a/system-status +++ b/system-status @@ -136,33 +136,32 @@ write-status() { # set -x # PS4='+ $(date "+%2N") ' # allow failure in case there are no snapshots yet. - # shellcheck disable=SC2012 shopt -s nullglob files=($btrbk_root/$vol.20*) shopt -u nullglob - if (( ! ${#files[@]} )); then - continue - fi - snaps=($(ls -1avdr "${files[@]}" 2>/dev/null |head -n1 || : )) - now=$EPOCHSECONDS - maxtime=0 - for s in ${snaps[@]}; do - file=${s##*/} - t=$(date -d $(sed -r 's/(.{4})(..)(.{5})(..)(.*)/\1-\2-\3:\4:\5/' <<<${file#$vol.}) +%s) - if (( t > maxtime )); then - maxtime=$t - fi - done - snapshotmsg= - last_snap_age=$(( now - maxtime )) - last_snap_hours=$(( last_snap_age / 60 / 60 )) - if (( last_snap_age > old_snap_limit )); then - chars+=(OLD-SNAP-${last_snap_hours}h) - snapshotmsg="/$vol snapshot older than 4 hours" - if [[ $MAIL_HOST == "$HOSTNAME" ]]; then - p "$snapshotmsg" | lo -1 old-snapshot + if (( ${#files[@]} )); then + # shellcheck disable=SC2012 # using ls version sort. not sure this is needed. + snaps=("$(ls -1avdr "${files[@]}" 2>/dev/null |head -n1 || : )") + now=$EPOCHSECONDS + maxtime=0 + for s in ${snaps[@]}; do + file=${s##*/} + t=$(date -d "$(sed -r 's/(.{4})(..)(.{5})(..)(.*)/\1-\2-\3:\4:\5/' <<<${file#"$vol."})" +%s) + if (( t > maxtime )); then + maxtime=$t + fi + done + snapshotmsg= + last_snap_age=$(( now - maxtime )) + last_snap_hours=$(( last_snap_age / 60 / 60 )) + if (( last_snap_age > old_snap_limit )); then + chars+=(OLD-SNAP-${last_snap_hours}h) + snapshotmsg="/$vol snapshot older than 4 hours" + if [[ $MAIL_HOST == "$HOSTNAME" ]]; then + p "$snapshotmsg" | lo -1 old-snapshot + fi + # not bothering to get info on all volumes if we find an old one. fi - # not bothering to get info on all volumes if we find an old one. fi @@ -272,6 +271,7 @@ write-status() { for mid in $(exiqgrep -o 2400 -zi); do if exim -Mvh $mid | awk 'tolower($2) == "fdate:"' | grep -q .; then qlen=$(( qlen - 1 )) + # shellcheck disable=SC2016 # exim var, not a bash bar if (( $(date -d "$(exim -Mset $mid -be <<<'$h_date:' | sed -n 's/^> *//;/./p')" +%s) < EPOCHSECONDS )); then if ip a show veth0-mail &>/dev/null; then pid=$(pgrep -f "/usr/sbin/exim4 -bd -q30m -C /etc/exim4/my.conf"|head -n1);