#/bin/sh # Daily script. Run tarsnap backup # periodic(8) doesn't work for me on a MacBook, so poll [ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1 pgrep -fq daily.sh && { echo "Already running"; exit 1; } set -u export LANG=C last=0 pid=daily.pid strategy=./strategy.sh t24h=$((24 * 60 * 60)) t5m=$((5 * 60)) [ -f $strategy ] || { echo "$strategy not found"; exit 1; } echo $$ > $pid mkdir -p logs while true; do if [ $((`date +%s` - last)) -ge $t24h ]; then log=logs/daily.log.`date +%Y%m%d` caffeinate $strategy >> $log 2>&1 && { last="`date +%Y%m%d`050000" # today @ 05:00 last=`date -j -f '%Y%m%d%H%M%S' '+%s' $last` # in seconds } ln -f $log logs/latest fi sleep $t5m done