#!/bin/sh # PC zeitgesteuert starten ohne die rtc-Zeit zu verstellen # Die Aufwachzeit muss auf 23:59:59 Uhr und den 31.12.2000 eingestellt und aktiviert sein # $1 - time_diff-filename # $2 - wakeup time # $3 - second up to wakeup # $4 - only a test if set to "test" # current time cur_time=`date +%s` # how many seconds before the next event the system should be booted boot_time=120 down_time=60 # Zeit beim Hochfahren korregieren if [ -f $1 ] ; then time_diff=`cat $1` set_time=$(( $cur_time + $time_diff )) date -s `mydate -d $set_time +%Y.%m.%d-%X` >/dev/null && hwclock -w -u && rm $1 fi # Zeit beim Runterfahren setzen if [ -n "$2" ] ; then if [ $2 -eq 0 ] ; then # kein timer gesetzt sleep_time=$(( 30 * 24 * 60 * 60 - 1 )) # 30days - 1s else # timer gesetzt if [ $3 -ge $(( $boot_time + $down_time )) ] ; then sleep_time=$3 else # zeit bis zum naechsten timer ist zu kurtz exit 2 fi fi if [ "$4" = "test" ];then exit 0 fi # date -d "Dec 31 23:59:59 2000" +%s wake_time=`date -d 2000.12.31-23:59:59 +%s` set_time=$(( $wake_time - $sleep_time + $boot_time )) time_diff=$(( $cur_time - $set_time )) # Hartware Uhr setzen date -s `mydate -d $set_time +%Y.%m.%d-%X` >/dev/null && hwclock -w -u && echo $time_diff > $1 # system Uhr wieder corregieren date -s `mydate -d $cur_time +%Y.%m.%d-%X` >/dev/null fi