From c00afb64faf2a6f25c59a72c0e801f079ea746aa Mon Sep 17 00:00:00 2001 From: Ian Kelling Date: Wed, 1 Mar 2023 09:55:07 -0500 Subject: [PATCH] btrbk: disable frodo temporarily, make more robust General improvement I noticed in reviewing code: Add subvols to mount-latest-remote so that it works the same as the local mount-latest, and we don't screw around with subvols we didn't mean to touch --- btrbk-run | 8 ++++++-- mount-latest-remote | 33 +++++++++++++++------------------ 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/btrbk-run b/btrbk-run index 2eb53c1..cce2abe 100644 --- a/btrbk-run +++ b/btrbk-run @@ -269,7 +269,9 @@ if [[ ! -v targets && ! $source ]]; then targets+=(x3wg.b8.nz) fi fi - for h in frodo kd; do + # temporarily disabled while doing recovery +# for h in frodo kd; do + for h in kd; do if [[ $HOSTNAME == "$h" ]]; then continue fi @@ -659,7 +661,9 @@ done if [[ $source ]]; then m mount-latest-subvol "${subvols[@]}" else - m /a/exe/mount-latest-remote ${targets[@]} + for tg in ${targets[@]}; do + m /a/exe/mount-latest-remote "$tg" "${subvols[@]}" || ret=$? + done fi if [[ $ret == 0 ]]; then diff --git a/mount-latest-remote b/mount-latest-remote index d43cbf2..bcd9e28 100755 --- a/mount-latest-remote +++ b/mount-latest-remote @@ -13,20 +13,25 @@ # See the License for the specific language governing permissions and # limitations under the License. + +# usage: HOST [mount-latest-subvol args] + source /usr/local/lib/err script_dir=$(dirname $(readlink -f "$BASH_SOURCE")) if (( ! $# )); then - echo "mount-latest-remote: error: expected 1 or more host arguments" + echo "mount-latest-remote: error: a host argument" exit 1 fi +tg="$1" +shift + $script_dir/install-my-scripts cd /usr/local ecode=0 -failed_hosts=() # exit code run er() { @@ -34,26 +39,18 @@ er() { "$@" || ret=$? if (( ret )); then echo "$0: failed command: $*" - failed_hosts+=($tg) fi if (( ret > ecode )); then ecode=$ret fi } -for tg; do - rsynctg=$tg - if [[ $tg == *:* ]]; then - rsynctg="[$tg]" - fi - # R = relative, t = times, O = omit-dir-times, p = perms - er rsync -RtOp bin/{mount-latest-subvol,check-subvol-stale} lib/err "root@$rsynctg:/usr/local" || continue - # note: this can hang if we have an old nfs mount. - er ssh root@$tg timeout -s 9 600 /usr/local/bin/mount-latest-subvol -done - -if (( $# == ${#failed_hosts[@]} )); then - echo "$0: error: all hosts failed: $*" >&2 -elif (( ${#failed_hosts[@]} )); then - echo "$0: error: some hosts failed: ${failed_hosts[@]}" >&2 +rsynctg=$tg +if [[ $tg == *:* ]]; then + rsynctg="[$tg]" fi +# R = relative, t = times, O = omit-dir-times, p = perms +er rsync -RtOp bin/{mount-latest-subvol,check-subvol-stale} lib/err "root@$rsynctg:/usr/local" || continue +# note: this can hang if we have an old nfs mount. +er ssh root@$tg timeout -s 9 600 /usr/local/bin/mount-latest-subvol "$@" + exit $ecode -- 2.30.2