X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=system-status;h=28b302441684782b49f838b50512b6c13912eca9;hb=523b7ff889aaafdcd997d84b2a06744993018e89;hp=fdf4758b5028a9f33ff03b91dfc0e9dedb22c77c;hpb=06a56540b041accaaff795ad57664e368cb07a10;p=distro-setup diff --git a/system-status b/system-status index fdf4758..28b3024 100755 --- a/system-status +++ b/system-status @@ -127,31 +127,26 @@ write-status() { ## check if last snapshot was recent old_snap_limit=$(( 3 * 60 * 60 )) - for vol in a o q; do - case $vol in - o) btrbk_root=/mnt/o/btrbk ;; - *) btrbk_root=/mnt/root/btrbk ;; - esac - # this section generally copied from btrbk scripts, but - # this part modified to speed things up by about half a second. - # I'm not sure if its quite as reliable, but it looks pretty safe. - # Profiled it using time and also adding to the top of the file: - # 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 || : )) + vol=o + btrbk_root=/mnt/o/btrbk + # this section generally copied from btrbk scripts, but + # this part modified to speed things up by about half a second. + # I'm not sure if its quite as reliable, but it looks pretty safe. + # Profiled it using time and also adding to the top of the file: + # set -x + # PS4='+ $(date "+%2N") ' + # allow failure in case there are no snapshots yet. + shopt -s nullglob + files=($btrbk_root/$vol.20*) + shopt -u nullglob + 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) + t=$(date -d "$(sed -r 's/(.{4})(..)(.{5})(..)(.*)/\1-\2-\3:\4:\5/' <<<${file#"$vol."})" +%s) if (( t > maxtime )); then maxtime=$t fi @@ -166,9 +161,8 @@ write-status() { p "$snapshotmsg" | lo -1 old-snapshot fi # not bothering to get info on all volumes if we find an old one. - break fi - done + fi if [[ $MAIL_HOST == "$HOSTNAME" ]]; then @@ -277,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); @@ -419,20 +414,20 @@ mute() { fi midnight=$(date -d 00:00 +%s) mdiff=$(( EPOCHSECONDS - midnight )) - if $locked && (( mdiff < 6 || mdiff > 21 )); then + if $locked && (( mdiff < 6 *60*60 || mdiff > 21 *60*60 )); then case $(pactl get-sink-mute @DEFAULT_SINK@ | awk '{print $2}') in no) # for log purposes - echo unmuted + echo muted pactl set-sink-mute @DEFAULT_SINK@ true ;; esac fi - if ! $locked && (( mdiff > 6 || mdiff < 12 )) && [[ ! -e /tmp/ianknap ]]; then + if ! $locked && (( mdiff > 6 *60*60 || mdiff < 12 *60*60 )) && [[ ! -e /tmp/ianknap ]]; then case $(pactl get-sink-mute @DEFAULT_SINK@ | awk '{print $2}') in yes) # for log purposes - echo muted + echo unmuted pactl set-sink-mute @DEFAULT_SINK@ false ;; esac