set -- $(< $default_args_file) "$@"
fi
-temp=$(getopt -l help cl:m:npt:vh "$@") || usage 1
+temp=$(getopt -l help cl:m:nps:t:vh "$@") || usage 1
eval set -- "$temp"
while true; do
case $1 in
sleep 5
fi
-if [[ -v targets && -v source ]]; then
+if [[ -v targets && $source ]]; then
echo "$0: error: -t and -s are mutually exclusive" >&2
exit 1
fi
echo -e "$0: options: conf_only=$conf_only\ndry_run=$dry_run\nrate_limit=$rate_limit\nverbose=$verbose\ncmd_arg=$cmd_arg"
# set default targets
-if [[ ! -v targets && ! -v source ]]; then
+if [[ ! -v targets && ! $source ]]; then
case $HOSTNAME in
x2|kw)
if [[ $HOSTNAME == "$MAIL_HOST" ]]; then
echo "targets: ${targets[*]}"
fi
-if [[ -v source ]]; then
+if [[ $source ]]; then
echo "source: $source"
fi
-for tg in ${targets[@]:-localhost}; do
+for tg in ${targets[@]:-$HOSTNAME}; do
# for an initial run, btrbk requires the dir to exist.
ssh root@$tg mkdir -p /mnt/root/btrbk
done
vol=/mnt/root
for m in ${mountpoints[@]}; do
sub=${m##*/}
- if [[ -v source ]]; then
+ if [[ $source ]]; then
cat >>/etc/btrbk.conf <<EOF
-volume ssh://$source$vol/btrbk
+volume ssh://$source$vol
subvolume $sub
target send-receive $vol/btrbk
EOF
if $dry_run; then
m btrbk -v -n $cmd_arg
elif [[ $cmd_arg == archive ]]; then
- if [[ -v source ]]; 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
-else
- # -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
+ 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
done
fi
-if ! $dry_run; then
- # note, targets will be empty if source is set.
- m $script_dir/mount-latest-remote ${targets[@]}
+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.