mostly t11 fixes
[distro-setup] / btrbk-run
index 7f72a58e86b1b72039e2e010100aa4a0b62f9d4e..1b6cec5406802048fbeb1583ddf569867dd87e16 100644 (file)
--- a/btrbk-run
+++ b/btrbk-run
@@ -358,7 +358,11 @@ local_zone=$(date +%z)
 
 if [[ $source ]]; then
   if ! zone=$(ssh root@$source date +%z); then
-    die failed to ssh to root@$source
+    if $conf_only; then
+      echo "$0: warning: failed to ssh to root@$source"
+    else
+      die failed to ssh to root@$source
+    fi
   fi
   if [[ $zone != "$local_zone" ]]; then
     die "error: dont confuse yourself with multiple time zones. $h has different timezone than localhost"
@@ -378,36 +382,41 @@ else
       if (( ${#remote_info[@]} != 3 )); then
         die "error: didnt get 3 fields in test ssh to target $h. investigate"
       fi
+    elif $conf_only; then
+      # Use some typical values in this case
+      root_size=$(( 1024 * 1024 * 2000 )) #2tb
+      percent_used=10
+      zone=$(date +%z)
+    else
+      sshfail+=($h)
+      continue
+    fi
 
+    # we may be booted into a bootstrap fs or something
+    min_root_kb=$(( 1024 * 1024 * 200 )) # 200 gb
+    if (( root_size < min_root_kb )); then
+      continue
+    fi
 
-      # we may be booted into a bootstrap fs or something
-      min_root_kb=$(( 1024 * 1024 * 200 )) # 200 gb
-      if (( root_size < min_root_kb )); then
-        continue
-      fi
-
-      if (( percent_used >= 98 )); then
-        die "error: filesystem on target $h is $percent_used % full"
-      fi
+    if (( percent_used >= 98 )); then
+      die "error: filesystem on target $h is $percent_used % full"
+    fi
 
-      # This is a separate ssh because xprintidle can fail and thats ok.
-      if $cron && idle_ms=$(timeout -s 9 6 ssh $h DISPLAY=:0 xprintidle); then
-        if (( idle_ms < min_idle_ms )); then
+    # This is a separate ssh because xprintidle can fail and thats ok.
+    if $cron && idle_ms=$(timeout -s 9 6 ssh $h DISPLAY=:0 xprintidle); then
+      if (( idle_ms < min_idle_ms )); then
 
-          # Ignore this host. i sometimes use a non-main machine for
-          # testing or web browsing, knowing that everything will be wiped
-          # by the next backup, but I dont want it to happen as Im using
-          # it from cronjob.
-          e "warning: $h: active X session in the last 15 minutes, skipping for now"
-          continue
-        fi
-      fi
-      sshable+=($h)
-      if [[ $zone != "$local_zone" ]]; then
-        die "error: dont confuse yourself with multiple time zones. $h has different timezone than localhost"
+        # Ignore this host. i sometimes use a non-main machine for
+        # testing or web browsing, knowing that everything will be wiped
+        # by the next backup, but I dont want it to happen as Im using
+        # it from cronjob.
+        e "warning: $h: active X session in the last 15 minutes, skipping for now"
+        continue
       fi
-    else
-      sshfail+=($h)
+    fi
+    sshable+=($h)
+    if [[ $zone != "$local_zone" ]]; then
+      die "error: dont confuse yourself with multiple time zones. $h has different timezone than localhost"
     fi
   done
   if [[ ! ${sshable[*]} ]] || { ! $cron && [[ ${sshfail[*]} ]]; }; then