# set default targets
if [[ ! -v targets && ! $source ]]; then
if [[ $HOSTNAME != "$MAIL_HOST" ]] && $cron ; then
- echo "We are not MAIL_HOST, nothing to do"
+ echo "MAIL_HOST=$MAIL_HOST, nothing to do"
exit 0
fi
case $HOSTNAME in
sshable=()
sshfail=()
+ min_idle_ms=$((1000 * 60 * 15))
for h in ${targets[@]}; do
if zone=$(ssh root@$h "mkdir -p /mnt/root/btrbk && date +%z"); then
+ if $cron && DISPLAY=:0 xprintidle; then
+ # This is a separate ssh because xprintidle can fail and thats ok.
+ # Ignore this host. i sometimes use a non-main machine for testing or web browsing, knowing that
+ # everything will be wiped by the next backup, but I dont want it to happen as Im using
+ # it from cronjob.
+ continue
+ fi
sshable+=($h)
if [[ $zone != $local_zone ]]; then
die "error: dont confuse yourself with multiple time zones. $h has different timezone than localhost"