btrbk: disable frodo temporarily, make more robust
authorIan Kelling <ian@iankelling.org>
Wed, 1 Mar 2023 14:55:07 +0000 (09:55 -0500)
committerIan Kelling <ian@iankelling.org>
Wed, 1 Mar 2023 14:55:07 +0000 (09:55 -0500)
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
mount-latest-remote

index 2eb53c1e25700c6b7dad52e02a9eaf1bcdab2d2b..cce2abeae6364e10e194a1788a196049ff4d708e 100644 (file)
--- 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
index d43cbf2081102ba3c255de6d94c9c74595f1ac04..bcd9e284e1703c3c686860ae2cae3d3a5cd5760f 100755 (executable)
 # 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