iankelling.org
/
git
/
distro-setup
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
minor improvements
[distro-setup]
/
btrbk-run
diff --git
a/btrbk-run
b/btrbk-run
index 8d6eb285f20eecdff391d99101482325d1712fc3..187a29a86bcab7a1e1218e94adfea65c664eeddc 100644
(file)
--- a/
btrbk-run
+++ b/
btrbk-run
@@
-77,7
+77,7
@@
fi
pre="${0##*/}:"
cron=false
orig_args=("$@")
pre="${0##*/}:"
cron=false
orig_args=("$@")
-temp=$(getopt -l cpull-reexec,help cl:m:npqs:t:vh "$@") || usage 1
+temp=$(getopt -l c
ron,
pull-reexec,help cl:m:npqs:t:vh "$@") || usage 1
eval set -- "$temp"
while true; do
case $1 in
eval set -- "$temp"
while true; do
case $1 in
@@
-120,9
+120,15
@@
if $verbose; then
fi
### end options parsing
fi
### end options parsing
+# TODO: i wonder if there should be an option to send to the default
+# targets, plus any given on the command line.
# set default targets
# set default targets
-if [[ ! -v targets && ! $source && $HOSTNAME == "$MAIL_HOST" ]]; then
+if [[ ! -v targets && ! $source ]]; then
+ if [[ $HOSTNAME != "$MAIL_HOST" ]] && $cron ; then
+ echo "We are not MAIL_HOST, nothing to do"
+ exit 0
+ fi
case $HOSTNAME in
kw|x2)
if ping -q -c1 -w1 iank.vpn.office.fsf.org &>/dev/null; then
case $HOSTNAME in
kw|x2)
if ping -q -c1 -w1 iank.vpn.office.fsf.org &>/dev/null; then
@@
-210,7
+216,7
@@
for m in "${mountpoints[@]}"; do
break
fi
done
break
fi
done
-if ! $pull_reexec && [[ $source ]] &&
!
$pulla ; then
+if ! $pull_reexec && [[ $source ]] && $pulla ; then
tmpf=$(mktemp)
scp $source:/a/bin/distro-setup/btrbk-run $tmpf
if ! diff -q $tmpf $BASH_SOURCE; then
tmpf=$(mktemp)
scp $source:/a/bin/distro-setup/btrbk-run $tmpf
if ! diff -q $tmpf $BASH_SOURCE; then
@@
-238,7
+244,7
@@
mkdir -p /mnt/root/btrbk
local_zone=$(date +%z)
if [[ $source ]]; then
local_zone=$(date +%z)
if [[ $source ]]; then
- if ! zone=$(ssh root$source date +%z); then
+ if ! zone=$(ssh root
@
$source date +%z); then
die failed to ssh to root@$source
fi
if [[ $zone != $local_zone ]]; then
die failed to ssh to root@$source
fi
if [[ $zone != $local_zone ]]; then
@@
-252,12
+258,12
@@
else
for h in ${targets[@]}; do
if zone=$(ssh root@$h "mkdir -p /mnt/root/btrbk && date +%z"); then
sshable+=($h)
for h in ${targets[@]}; do
if zone=$(ssh root@$h "mkdir -p /mnt/root/btrbk && date +%z"); then
sshable+=($h)
+ if [[ $zone != $local_zone ]]; then
+ die "error: dont confuse yourself with multiple time zones. $h has different timezone than localhost"
+ fi
else
sshfail+=($h)
fi
else
sshfail+=($h)
fi
- if [[ $zone != $local_zone ]]; then
- die "error: dont confuse yourself with multiple time zones. $h has different timezone than localhost"
- fi
done
if [[ ! $sshable ]] || { ! $cron && [[ $sshfail ]]; }; then
die "failed to ssh to hosts: ${sshfail[*]}"
done
if [[ ! $sshable ]] || { ! $cron && [[ $sshfail ]]; }; then
die "failed to ssh to hosts: ${sshfail[*]}"