iankelling.org
/
git
/
distro-setup
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
various bug fixes
[distro-setup]
/
btrbk-run
diff --git
a/btrbk-run
b/btrbk-run
old mode 100755
(executable)
new mode 100644
(file)
index
4762b2f
..
b753b5d
--- a/
btrbk-run
+++ b/
btrbk-run
@@
-24,7
+24,11
@@
trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
usage() {
cat <<'EOF'
btrbk-run [OPTIONS]
usage() {
cat <<'EOF'
btrbk-run [OPTIONS]
-usually -t TARGET_HOST
+usually -t TARGET_HOST or -s SOURCE_HOST
+
+Note, at source location, intentionally not executable, run and read
+install-my-scripts.
+
EOF
echo "top of script file:"
sed -n '1,/^[# ]*end command line/{p;b};q' "$0"
EOF
echo "top of script file:"
sed -n '1,/^[# ]*end command line/{p;b};q' "$0"
@@
-53,7
+57,7
@@
if [[ -s $default_args_file ]]; then
set -- $(< $default_args_file) "$@"
fi
set -- $(< $default_args_file) "$@"
fi
-temp=$(getopt -l help cl:m:npt:vh "$@") || usage 1
+temp=$(getopt -l help cl:m:np
s:
t:vh "$@") || usage 1
eval set -- "$temp"
while true; do
case $1 in
eval set -- "$temp"
while true; do
case $1 in
@@
-87,7
+91,7
@@
if [[ -s $default_args_file ]]; then
sleep 5
fi
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 "$0: error: -t and -s are mutually exclusive" >&2
exit 1
fi
@@
-95,7
+99,7
@@
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
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
case $HOSTNAME in
x2|kw)
if [[ $HOSTNAME == "$MAIL_HOST" ]]; then
@@
-124,7
+128,7
@@
if [[ -v targets ]]; then
echo "targets: ${targets[*]}"
fi
echo "targets: ${targets[*]}"
fi
-if [[
-v
source ]]; then
+if [[
$
source ]]; then
echo "source: $source"
fi
echo "source: $source"
fi
@@
-222,7
+226,7
@@
EOF
-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
# for an initial run, btrbk requires the dir to exist.
ssh root@$tg mkdir -p /mnt/root/btrbk
done
@@
-232,9
+236,9
@@
done
vol=/mnt/root
for m in ${mountpoints[@]}; do
sub=${m##*/}
vol=/mnt/root
for m in ${mountpoints[@]}; do
sub=${m##*/}
- if [[
-v
source ]]; then
+ if [[
$
source ]]; then
cat >>/etc/btrbk.conf <<EOF
cat >>/etc/btrbk.conf <<EOF
-volume ssh://$source$vol
/btrbk
+volume ssh://$source$vol
subvolume $sub
target send-receive $vol/btrbk
EOF
subvolume $sub
target send-receive $vol/btrbk
EOF
@@
-265,18
+269,18
@@
fi
if $dry_run; then
m btrbk -v -n $cmd_arg
elif [[ $cmd_arg == archive ]]; then
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
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
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
# if we have it, sync to systems which don't
if mountpoint $rsync_mountpoint >/dev/null; then
@@
-294,12
+298,13
@@
if mountpoint $rsync_mountpoint >/dev/null; then
done
fi
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
fi
-
# todo: move variable data we don't care about backing up
# to /nocow and symlink it.
# todo: move variable data we don't care about backing up
# to /nocow and symlink it.