X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=btrbk-run;h=df17880ed025497749c535431a640797eabf0422;hb=0cc08a73110c15c4e7bbb8c8233a6c122c27490e;hp=4762b2fd553319a0bfaca886f893ea29d85ac2c0;hpb=9bd685f6da7ad7b9b00eee67a7f767466c42229c;p=distro-setup diff --git a/btrbk-run b/btrbk-run old mode 100755 new mode 100644 index 4762b2f..df17880 --- a/btrbk-run +++ b/btrbk-run @@ -24,13 +24,22 @@ 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" exit $1 } +# latest $MAIL_HOST +if [[ -e /b/bash_unpublished/source-semi-priv ]]; then + source /b/bash_unpublished/source-semi-priv +fi + script_dir=$(dirname $(readlink -f "$BASH_SOURCE")) # note q is owned by root:1000 @@ -53,7 +62,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 +96,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 +104,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 +133,7 @@ if [[ -v targets ]]; then echo "targets: ${targets[*]}" fi -if [[ -v source ]]; then +if [[ $source ]]; then echo "source: $source" fi @@ -143,11 +152,6 @@ case $HOSTNAME in fi ;; esac -case ${targets[0]} in - kw|kww) - prospective_mps=(/a) - ;; -esac for mp in ${prospective_mps[@]}; do # default mountpoints to sync if [[ -e /nocow/btrfs-stale/$mp ]]; then @@ -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 +299,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[@]} +/a/bin/distro-setup/install-my-scripts +if [[ $source ]]; then + m mount-latest-subvol +else + m /a/exe/mount-latest-remote ${targets[@]} fi - # todo: move variable data we don't care about backing up # to /nocow and symlink it.