From 8fc333f8c2d69d0792f3742d4f4351e7acb07d9e Mon Sep 17 00:00:00 2001 From: Ian Kelling Date: Wed, 3 Aug 2022 15:31:55 -0400 Subject: [PATCH] btrbk-run archive improvements --- btrbk-run | 34 +++++++++++----------------------- 1 file changed, 11 insertions(+), 23 deletions(-) diff --git a/btrbk-run b/btrbk-run index 8a310e6..7f72a58 100644 --- a/btrbk-run +++ b/btrbk-run @@ -26,7 +26,7 @@ source /usr/local/lib/err usage() { cat <<'EOF' -btrbk-run [OPTIONS] +btrbk-run [OPTIONS] [run|resume|archive] usually -t TARGET_HOST or -s SOURCE_HOST Note, at source location, intentionally not executable, run and read @@ -76,7 +76,6 @@ if [[ -s $default_args_file ]]; then sleep 5 fi -marchive=false early=false cron=false orig_args=("$@") @@ -129,7 +128,6 @@ while true; do esac done -# only tested commands are resume and archive cmd_arg=${1:-run} @@ -137,9 +135,16 @@ std_preserve="18h 14d 8w 24m" q_preserve="18h 14d" case $cmd_arg in - run|resume|archive) : ;; - marchive) - marchive=true + run|resume) : ;; + + # This works better than the normal archive command. We have to + # specify the mount points, but that is what we are used to doing and + # we prefer it. Another difference is that archive works recursively + # and we don't care about that. Sometimes we may still want to run + # btrbk archive, but it doesn't even use the config file, so just + # run it directly, eg: + # time s btrbk -v archive /mnt/r7/amy/boot/btrbk ssh://bo/mnt/boot2/btrbk + archive) cmd=resume std_preserve="999h 999d 999w 999m" q_preserve="$std_preserve" @@ -163,8 +168,6 @@ if $verbose; then fi ### end options parsing -declare -A vols - # remove path from earlier version of btrbk rm -f /usr/sbin/btrbk # note, this still works as intended if there is no /usr/bin/btrbk @@ -468,11 +471,9 @@ for m in ${mountpoints[@]}; do case $m in /o) vol=/mnt/o - vols[$vol]=t ;; *) vol=/mnt/root - vols[$vol]=t ;; esac @@ -536,19 +537,6 @@ fi if $dry_run; then m btrbk -v -n $cmd_arg mexit 0 -elif [[ $cmd_arg == archive ]]; then - if [[ $source ]]; then - for vol in ${!vols[@]}; do - m btrbk $verbose_arg $progress_arg $cmd_arg ssh://$source$vol $vol - done - else - for tg in ${targets[@]}; do - for vol in ${!vols[@]}; do - m btrbk $verbose_arg $progress_arg $cmd_arg $vol ssh://$tg$vol - done - done - fi - mexit 0 fi # -q and just using the syslog option seemed nice, # but it doesn't show when a send has a parent and when it doesn't. -- 2.30.2