diff --git a/ChangeLog b/ChangeLog index 83402884186e3e8624a95004392f79efae4a8908..95b6326a5d54d5f056fdc183d3d17cafe3507dc0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2007-08-07 Per Cederqvist <ceder@ryttargardskyrkan.se> + Added support for starting the backups at a predefined time. + * backup-repeatedly: New option: --start-time, that specifies the + hour and minute when the backup should start. + Added fetch-work-pcfritz. * fetch-work-pcfritz: New file, for the installation at Ryttargårdskyrkan. diff --git a/backup-repeatedly b/backup-repeatedly index 2f2bb1f0c3cc6c5ab83c8b2654d119cc06abbc1d..0d6d7aff413bd3925fbe69f94491e1cb1645d861 100755 --- a/backup-repeatedly +++ b/backup-repeatedly @@ -1,7 +1,53 @@ #!/bin/sh ctr=0 +starttime= + +LASTSTART=/opt/LYSrdiff/var/last-start + +case $1 in + --start-time) + shift + case $1 in + [0-9][0-9]:[0-9][0-9]) + start_h=`echo $1|sed 's/:.*//'` + start_m=`echo $1|sed 's/.*://'` + starttime=`expr 3600 '*' $start_h + 60 '*' $start_m` + shift + ;; + *) + echo bad time >&2 + exit 1 + ;; + esac +esac + while : do + if [ -n "$starttime" ] + then + if [ -z "`find $LASTSTART -ctime +0 -print 2>/dev/null`" ] + then + now=`date +%H:%M:%S` + h=`echo $now|sed 's/:.*//'` + m=`echo $now|sed 's/[^:]*://'|sed 's/:.*//'` + s=`echo $now|sed 's/.*://'` + delta=`expr $starttime - '(' 3600 '*' $h + 60 '*' $m + $s ')'` + day=`expr 24 '*' 3600` + to_wait=`expr '(' $delta + $day ')' % $day` + if [ $to_wait -lt `expr $day - 60` ] && [ $to_wait -gt 1 ] + then + echo Sleeping for $to_wait seconds until $start_h:$start_m + sleep $to_wait + else + echo Not sleeping $to_wait seconds + fi + else + echo Not sleeping since previous run took too long + fi + else + echo 'Not sleeping: no --start-time specified' + fi + ctr=`expr $ctr + 1` [ -f /opt/LYSrdiff/etc/finish ] && break [ -f /opt/LYSrdiff/etc/stop ] && break