From: Ian Kelling Date: Sun, 4 Jun 2023 22:48:04 +0000 (-0400) Subject: fix bug X-Git-Url: https://iankelling.org/git/?p=distro-setup;a=commitdiff_plain;h=4da3435e0d1918d90f59043deff2dffbdbe172c2 fix bug --- diff --git a/btrbk-run b/btrbk-run index 231a239..014d85b 100644 --- a/btrbk-run +++ b/btrbk-run @@ -148,15 +148,18 @@ while true; do shift done +cmd_arg="$1" + if $kd_spread_maybe; then - if [[ $1 && $1 != resume ]]; then + if [[ $cmd_arg && $cmd_arg != resume ]]; then die "dont pass -k without resume or empty run arg" fi cmd_arg=resume fi - -cmd_arg=${1:-run} +if [[ ! $cmd_arg ]]; then + cmd_arg=run +fi std_preserve="36h 14d 8w 24m" @@ -317,19 +320,6 @@ if [[ ! -v targets && ! $source ]]; then esac fi -if $verbose; then - printf "$pre options: conf_only=%s\ndry_run=%s\nrate_limit=%s\nverbose=%s\ncmd_arg=%s" "$conf_only" "$dry_run" "$rate_limit" "$verbose" "$cmd_arg" -fi - - -if [[ -v targets ]]; then - echo "targets: ${targets[*]}" -fi - -if [[ $source ]]; then - echo "source: $source" -fi - if [[ ${mountpoints[0]} ]]; then for mp in ${mountpoints[@]}; do if [[ -e /nocow/btrfs-stale/$mp ]]; then @@ -385,10 +375,10 @@ if (( ! ${#mountpoints[@]} )); then die didnt get mountpoint arg and had no defaults fi -echo "mountpoints: ${mountpoints[*]}" - ##### end command line parsing ######## +#### begin pre-checks ##### + # 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 @@ -402,6 +392,38 @@ if ! $fast && [[ $source ]]; then fi fi +if ! command -v btrbk &>/dev/null; then + die "error: no btrbk binary found" +fi + + +#### end pre-checks ##### + +mkdir -p /var/log/btrbk +# The journal doesnt go back to my oldest backups, and I've found myself +# wanting older logs. Not going to bother expiring old logs, since it is +# fine if they go back years. +log_path=/var/log/btrbk/$(date +%F_%T%:::z).log +echo copying output to $log_path +exec &> >(tee -a $log_path) + + +if $verbose; then + printf "$pre options: conf_only=%s\ndry_run=%s\nrate_limit=%s\nverbose=%s\ncmd_arg=%s" "$conf_only" "$dry_run" "$rate_limit" "$verbose" "$cmd_arg" +fi + +if [[ -v targets ]]; then + echo "targets: ${targets[*]}" +fi + +if [[ $source ]]; then + echo "source: $source" +fi + +echo "mountpoints: ${mountpoints[*]}" + + + # pull_reexec stops us from getting into an infinite loop if there is some # kind of weird problem pulla=false @@ -425,10 +447,6 @@ if ! $pull_reexec && [[ $source ]] && $pulla ; then fi -if ! command -v btrbk &>/dev/null; then - die "error: no btrbk binary found" -fi - if ! $fast; then # if our mountpoints are from stale snapshots, # it doesn't make sense to do a backup.