+
+
+if $dry_run; then
+ m btrbk -v -n $cmd_arg
+elif [[ $cmd_arg == archive ]]; then
+ if [[ $source ]]; then
+ m btrbk $verbose_arg $progress_arg $cmd_arg ssh://$source$vol $vol
+ else
+ for tg in ${targets[@]}; do
+ m btrbk $verbose_arg $progress_arg $cmd_arg $vol ssh://$tg$vol
+ done
+ fi
+ exit 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.
+m btrbk $verbose_arg $progress_arg $cmd_arg
+
+# if we have it, sync to systems which don't
+if mountpoint $rsync_mountpoint >/dev/null; then
+ for tg in ${targets[@]}; do
+ case $tg in
+ li|lk)
+ for x in /p/c/machine_specific/*.hosts; do
+ if grep -qxF $tg $x; then
+ dir=${x%.hosts}
+ rsync-dirs $tg $dir
+ fi
+ done
+ ;;
+ esac
+ done
+fi
+
+PATH=$script_dir:$PATH
+if [[ $source ]]; then
+ m mount-latest-subvol
+else
+ m mount-latest-remote ${targets[@]}
+fi
+
+# todo: move variable data we don't care about backing up
+# to /nocow and symlink it.
+
+
+# background on btrbk timezones. with short/long, timestamps use local time.
+# for long, if your local time moves backwards, by moving timezones or
+# for an hour when daylight savings changes it, you will temporarily get
+# a more aggressive retention policy for the overlapping period, and
+# vice versa for the opposite timezone move. The alternative is using
+# long-iso, which puts timezone info into the timestamp, which means
+# that instead of shifting time, you shift the start of day/week/month
+# which is used for retention to your new local time, which means for
+# example, if you moved forward by 8 hours, the daily/weekly/monthly
+# retention will be 8 hours more aggressive since midnight is at a new
+# time, unless you fake the timzeone using the TZ env variable.
+# However, in the short term, there will be no inconsistencies.
+# I don't see any problem with shifting when the day starts for
+# retention, so I'm using long-iso.
+
+# note to create a long-iso timestamp: date +%Y%m%dT%H%M%S%z