X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=btrbk-run;h=f6570a167f9cc54cc30b212290ef4997b97509d2;hb=c926b55471a48cbcd99607ce1e003da55211d166;hp=e30c9c3dd3667d259a46e560773890e3919dd9a9;hpb=f7eaad64a7c5f3bc851f146e1f258d34f398a7d7;p=distro-setup diff --git a/btrbk-run b/btrbk-run index e30c9c3..f6570a1 100644 --- a/btrbk-run +++ b/btrbk-run @@ -150,9 +150,18 @@ while true; do esac done -# usefull commands are resume and archive +# only tested commands are resume and archive cmd_arg=${1:-run} +case $cmd_arg in + run|resume|archive) : ;; + *) die "untested command arg" ;; +esac + +if (( $# > 1 )); then + die: "only 1 nonoption arg is supported" +fi + if [[ -v targets && $source ]]; then die "error: -t and -s are mutually exclusive" fi @@ -229,8 +238,17 @@ else # ;; *) prospective_mps=(/a /q) - if [[ $HOSTNAME == "$MAIL_HOST" ]]; then - prospective_mps+=(/o) + if [[ $source ]]; then + source_state="$(ssh $source cat /a/bin/bash_unpublished/source-state)" + eval "$source_state" + source_host="$(ssh $source cat /etc/hostname)" + if [[ $source_host == "$MAIL_HOST" ]]; then + prospective_mps+=(/o) + fi + else + if [[ $HOSTNAME == "$MAIL_HOST" ]]; then + prospective_mps+=(/o) + fi fi ;; esac @@ -247,7 +265,14 @@ fi echo "mountpoints: ${mountpoints[*]}" +##### end command line parsing ######## +if [[ $source ]]; then + if [[ $(ssh $source systemctl is-active btrbk.service) != inactive ]]; then + echo "$0: error: cron btrbk is running on source. exiting out of caution" + exit 1 + fi +fi # pull_reexec stops us from getting into an infinite loop if there is some # kind of weird problem @@ -270,7 +295,6 @@ if ! $pull_reexec && [[ $source ]] && $pulla ; then fi -##### end command line parsing ########