From: Ian Kelling Date: Sun, 12 Jun 2022 05:08:10 +0000 (-0400) Subject: misc minor fixes X-Git-Url: https://iankelling.org/git/?p=distro-setup;a=commitdiff_plain;h=ea108a03dfa2d7f73447c0b14210d766e5ee5d9b misc minor fixes --- diff --git a/brc b/brc index b0f8846..c9cd4fc 100644 --- a/brc +++ b/brc @@ -1689,23 +1689,15 @@ sgu() { sk() { - # note, if you do something like this - # x=( prefix* ) - # then disable the warning with: - # shellcheck disable=SC2206 # globbing is intended + # disable a warning with: + # shellcheck disable=SC2206 # reasoning - # 2029: "unescaped, this expands on the client side.": yes, I know how ssh works - # 2164: "Use 'cd ... || exit' or 'cd ... || return' in case cd fails.": i have automatic error handling - # 2086: unquoted $var: Quoting every var I set is way too much quotes. - # 2068: Double quote array expansions to avoid re-splitting elements: same as above. - # 2033: command arg is a function name: too many false positives. + # see bash-template/style-guide.md for justifications - - # these ones I had disabled, but without a good written explanation, so enabling them temporarily - # 2046: unquoted $(cmd) - # 2119: Functions with optional args get bad warnings when none are passed. - - shellcheck -W 999 -x -e 2029,2164,2086,2068,2033 "$@" || return $? + local quotes others + quotes=2048,2068,2086,2206 + others=2029,2033,2164 + shellcheck -W 999 -x -e $quotes,$others "$@" || return $? } diff --git a/btrfsmaint b/btrfsmaint index 8e72141..33cae4a 100755 --- a/btrfsmaint +++ b/btrfsmaint @@ -41,13 +41,12 @@ check-idle() { fi } - usage() { cat <$tmp; then - if diff -q $mnt/btrfs-dev-stats $tmp; then - diff -u $mnt/btrfs-dev-stats $tmp | mail -s "$HOSTNAME: error: btrfs dev stats -c $mnt" root@localhost - cat $tmp >$mnt/btrfs-dev-stats - fi - fi - rm -f $tmp + #### begin look for diff in stats, eg: increasing error count #### - if ! $idle; then - if $dryrun; then - echo "$0: not idle. if this wasnt a dry run, btrfs scrub cancel $mnt" - else - btrfs scrub cancel $mnt &>/dev/null ||: - continue + # Only run for $check, since it runs in parallel to non-check, avoid + # race condition. + if $check; then + if ! btrfs dev stats -c $mnt >$tmp; then + if diff -q $mnt/btrfs-dev-stats $tmp; then + diff -u $mnt/btrfs-dev-stats $tmp | mail -s "$HOSTNAME: error: btrfs dev stats -c $mnt" root@localhost + cat $tmp >$mnt/btrfs-dev-stats + fi fi + rm -f $tmp fi + #### end look for diff in stats, eg: increasing error count #### + if $check; then + if ! $idle; then + if $dryrun; then + echo "$0: not idle. if this wasnt a dry run, btrfs scrub cancel $mnt" + else + btrfs scrub cancel $mnt &>/dev/null ||: + fi + fi continue fi @@ -149,11 +169,10 @@ main() { echo "$0: last scrub finish for $mnt: $date" fi date=$(date --date="$date" +%s) - # if date is sooner than 90 days ago + # if date is sooner than 60 days ago # the wiki recommends 30 days or so, but - # it makes the comp lag like shit for a day, - # so I'm going with 90 days. - if (( date > EPOCHSECONDS - 60*60*24*30 )); then + # I'm going with 60 days. + if (( date > EPOCHSECONDS - 60*60*24*60 )); then if $dryrun; then echo "$0: skiping scrub of $mnt, last was $(( (EPOCHSECONDS - date) / 60/60/24 )) days ago, < 30 days" fi @@ -162,6 +181,13 @@ main() { fi # -c 2 -n 4 is from btrfsmaintenance, does ionice e btrfs scrub start -Bd -c 2 -n 4 $mnt + + # We normally only do one disk since this is meant to be run while I sleep + # and if we try to do all disks, we invariably end up doing a scrub still + # after I've woken up. So, just do one per day. + if ! $force; then + return 0 + fi done } diff --git a/filesystem/etc/systemd/system/btrfsmaint.timer b/filesystem/etc/systemd/system/btrfsmaint.timer index 761380c..355cda4 100644 --- a/filesystem/etc/systemd/system/btrfsmaint.timer +++ b/filesystem/etc/systemd/system/btrfsmaint.timer @@ -6,7 +6,10 @@ Description=btrfsmaint # timedatectl show --property=Timezone | sed 's/^[^=]*=//' # or # readlink /etc/localtime | sed -r 's,^.*/([^/]+/[^/]+)$,\1,' -OnCalendar=Thu *-*-* 02:00:00 America/New_York + +# previously, was running weekly. +#OnCalendar=Thu *-*-* 02:00:00 America/New_York +OnCalendar=*-*-* 02:00:00 America/New_York [Install] WantedBy=timers.target diff --git a/filesystem/usr/local/bin/check-lets-encrypt-ssl-settings b/filesystem/usr/local/bin/check-lets-encrypt-ssl-settings index 8fb11c9..7c212d9 100755 --- a/filesystem/usr/local/bin/check-lets-encrypt-ssl-settings +++ b/filesystem/usr/local/bin/check-lets-encrypt-ssl-settings @@ -34,15 +34,16 @@ gitget https://github.com/certbot/certbot.git $d |& ts "%F %T" >>/tmp/${0##*/}.l cd $d f=certbot-apache/certbot_apache/_internal/tls_configs/current-options-ssl-apache.conf -out=$(git log -p --since 2020-04-06 $f) +out=$(git log -p --since 2022-05-14 $f) if [[ $out ]]; then cat <&2' ERR [[ $EUID == 0 ]] || exec sudo -E "${BASH_SOURCE[0]}" "$@" case $1 in - # for first run, accept host key + # For first run, accept host key. Note, known_hosts is saved in /p. -1) opt=(-e 'ssh -oStrictHostKeyChecking=no') ;; diff --git a/mail-setup b/mail-setup index b53530a..de9db48 100755 --- a/mail-setup +++ b/mail-setup @@ -347,7 +347,6 @@ stopifactive() { mxhost=mx.iankelling.org mxport=587 -forward=$u@$mxhost # old setup. left as comment for example # mxhost=mail.messagingengine.com @@ -1622,7 +1621,7 @@ EOF cat <<'EOF' # https://ssl-config.mozilla.org ssl = required -# this is the same as the certbot list, in my cert cronjob, I check if that has changed upstream. +# this is the same as the certbot list, i check changes in /a/bin/ds/filesystem/usr/local/bin/check-lets-encrypt-ssl-settings ssl_cipher_list = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384 ssl_protocols = TLSv1.2 ssl_prefer_server_ciphers = no @@ -1633,7 +1632,7 @@ protocol lmtp { mail_plugins = $mail_plugins sieve } EOF - if dpkg --compare-versions $(dpkg-query -f='${Version}\n' --show dovecot-core) ge 1:2.3; then + if dpkg --compare-versions "$(dpkg-query -f='${Version}\n' --show dovecot-core)" ge 1:2.3; then cat <