X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=btrbk-run;h=b753b5d7ec4a3b45598ee51105804ff4555c4edf;hb=90bd397922e7240c41377e7404f79f190bfbc9d8;hp=4762b2fd553319a0bfaca886f893ea29d85ac2c0;hpb=9bd685f6da7ad7b9b00eee67a7f767466c42229c;p=distro-setup diff --git a/btrbk-run b/btrbk-run old mode 100755 new mode 100644 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] -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" @@ -53,7 +57,7 @@ if [[ -s $default_args_file ]]; then 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 @@ -87,7 +91,7 @@ if [[ -s $default_args_file ]]; then 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 @@ -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 -if [[ ! -v targets && ! -v source ]]; then +if [[ ! -v targets && ! $source ]]; then case $HOSTNAME in x2|kw) if [[ $HOSTNAME == "$MAIL_HOST" ]]; then @@ -124,7 +128,7 @@ if [[ -v targets ]]; then echo "targets: ${targets[*]}" fi -if [[ -v source ]]; then +if [[ $source ]]; then 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 @@ -232,9 +236,9 @@ done vol=/mnt/root for m in ${mountpoints[@]}; do sub=${m##*/} - if [[ -v source ]]; then + if [[ $source ]]; then cat >>/etc/btrbk.conf </dev/null; then @@ -294,12 +298,13 @@ 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.