X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=myunison;h=f68ae34af1337111201affd1d8ff4279eec63ada;hb=28904b44d0dd6ce9d43ab720b5efe9af2ce336de;hp=d8f23bcf64464ac6336c4f5a530147e33cf534fd;hpb=8776c88a2ac745546ff519d0a2c907a0144ed5a1;p=distro-setup diff --git a/myunison b/myunison index d8f23bc..f68ae34 100755 --- a/myunison +++ b/myunison @@ -1,16 +1,21 @@ -#!/bin/bash -l +#!/bin/bash -lx set -eE -o pipefail trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR +# note, we could have done machine specific subvols, +# but there were so few files, it just didn't seem +# necessary to have an rw copy on those machines +# which did not have the whole p subvol. + gen_args=() -do_snapshot=true +do_snapshot=false batch=false while [[ $1 ]]; do case $1 in -ob) gen_args+=(--ours -b); batch=true; shift ;; -b) gen_args+=(-b); batch=true; shift ;; - -n) do_snapshot=false; shift ;; + -n) do_snapshot=true; shift ;; -h|--help) echo "$0: help is head of $BASH_SOURCE:" head -n 30 "$BASH_SOURCE" @@ -56,7 +61,7 @@ if [[ ! -e $push_path ]]; then fi # note, i'd prefer to use /usr/local/bin, but it's not in arch's default # path for root. -scp /usr/bin/unison-latest-stable root@$host:/usr/bin/unison +rsync -L /usr/bin/unison-latest-stable root@$host:/usr/bin/unison if $do_snapshot; then unison-snapshot @@ -78,12 +83,15 @@ else type -t $f &>/dev/null || f=unison-gtk2 # for arch fi + + s ln -sTf ~/.unison /root/.unison + if s $f "$host"; then if [[ $host == frodo ]]; then # only send data to the machine i do full backups to - p=/q/p/c/machine_specific/$HOSTNAME/.unison/ + p=/p/c/machine_specific/$HOSTNAME/.unison/ s rsync -rlptgohi $p root@$host:$p fi - p=/q/p/c/machine_specific/$host/.unison/ + p=/p/c/machine_specific/$host/.unison/ s rsync -rlptgohvi root@$host:$p $p fi