;;&
*)
if $at_home; then
- if ! $kd_spread; then
+ if ! $kd_spread && [[ $HOSTNAME != x3 ]]; then
# main work machine
if ping -q -c1 -w1 x3.office.fsf.org &>/dev/null; then
targets+=(x3.office.fsf.org)
+ elif ping -q -c1 -w1 $h.b8.nz &>/dev/null; then
+ # in case we took it home
+ targets+=(x3.b8.nz)
else
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
targets+=($h.b8.nz)
done
- for h in x2 x3 sy; do
+ for h in x2 sy; do
if [[ $HOSTNAME == "$h" ]]; then
continue
fi
if [[ $HOSTNAME == "$HOST2" ]]; then
prospective_mps+=(/a /ar /qr /q)
fi
+ if $kd_spread; then
+ prospective_mps=(/a /ar /o /qr /q)
+ fi
fi
# note: put q last just in case its specific retention options were to
# affect other config sections. I havent tested if that is the case.
done
fi
+if (( ! ${#mountpoints[@]} )); then
+ die didnt get mountpoint arg and had no defaults
+fi
+
echo "mountpoints: ${mountpoints[*]}"
##### end command line parsing ########
+# todo: this has a timing problem, since btrbk.timer could activate the service after this check.
if ! $fast && [[ $source ]]; then
if [[ $(ssh $source ps --no-headers -o comm 1) == systemd ]]; then
status=$(ssh $source systemctl is-active btrbk.service) || : # normally returns 3
root_size=$(( 1024 * 1024 * 2000 )) #2tb
percent_used=10
zone=$(date +%z)
- elif tmpstr=$(timeout -s 9 6 ssh root@$h "mkdir -p /mnt/root/btrbk /mnt/o/btrbk && date +%z && df --output=size,pcent / | tail -n1"); then
- IFS=" " read -r -a remote_info <<<"$tmpstr"
-
- zone=${remote_info[0]}
- root_size=${remote_info[1]}
- percent_used=${remote_info[2]%%%}
-
- if (( ${#remote_info[@]} != 3 )); then
- die "error: didnt get 3 fields in test ssh to target $h. investigate"
+ elif remote_str=$(timeout -s 9 6 ssh root@$h "mkdir -p /mnt/root/btrbk /mnt/o/btrbk && date +%z && df --output=size,pcent / | tail -n1"); then
+ mapfile -t tmp_array <<<"$remote_str"
+ zone="${tmp_array[0]}"
+ IFS=" " read -r root_size percent_used <<<"${tmp_array[1]}"
+ percent_used=${percent_used%%%}
+
+ if (( ${#tmp_array[@]} != 2 )); then
+ die "error: didnt get 2 lines in test ssh to target $h. investigate"
fi
+ case $percent_used in
+ [0-9]|[1-9][0-9]) : ;;
+ *)
+ die "error: didnt get percent disk use in test ssh to target $h. investigate"
+ ;;
+ esac
else
sshfail+=($h)
continue
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